mysql field不能排序的原因

        今天查看sql語句,發現mysql中field不能按指定id排序了,網上搜索了一下資料並沒有人跟我遇到同樣的情況。仔細查看sql代碼發現order by 排序後面還有條件篩選。例如下面的例子: test表,我想按照7,8,6的id順序排序。

        

        按照field的語法,寫了SQL語句:

    select * from test order by field(id,7,8,6) and reg_time >= '2016-01-01'
       可是發現打印出的結果並不是我想要的:

      

      於是仔細看上面的SQL語句 ,field後面還有一個條件語句,所以知道原因了,就是這條件語句使結果產生不一樣的效果,但是這條sql是符合相關語法要求的,於是我們在做排序的時候需要把order by放到條件語句之後,這是日常生活中需要注意的細節。調整以後sql語句如下:

    select * from test where reg_time >= '2016-01-01'  order by field(id,7,8,6) 
     就可以查看到我們想要的結果了:

    

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章