之前我們已經了解的mysql按照中文進行排序的實現方法了:
那麼如何按照指定欄位的指定順序進行排序呢?
例如有乙個使用者表user,有id,username,status欄位,status的字段值有1,2,3,4四種情況,如何將使用者表中的資料按照status欄位的2,4,1,3順序進行排序呢?
這時候需要使用到field或者find_in_set方法,如:
select * from user order by field(status,2,4,1,3)
或
select * from user order by find_in_set(status,'2,4,1,3')
如上兩種方法就可以實現按照指定欄位的指定順序進行排序了
在yii框架中實現如下
user::find()
->orderby([
new \yii\db\expression('field (status,2,4,1,3'),
])->all()
mysql 查詢結果集按照指定的字段值順序排序
mysql 查詢結果如果不給予指定的order by 那麼mysql會按照主鍵順序 innodb引擎 對結果集加以排序,那麼最後的排序可能就不是你想要的排序結果。舉個例子,我要按照前端傳過來的mongoid集合來查詢資料庫並且返回同樣排序的結果集合,如 m3,m5,m4 他們對應的主鍵順序為 m4,...
MySql查詢結果按照指定順序排序
mysql這功能做的很好用啊!讓查詢結果按照指定順序排序 表結構如下 mysql select from test id name 1 test1 2 test2 3 test3 4 test4 5 test5 執行以下sql mysql select from test where id in 3...
MySql查詢結果按照指定順序排序
mysql這功能做的很好用啊!讓查詢結果按照指定順序排序 表結構如下 mysql select from test id name 1 test1 2 test2 3 test3 4 test4 5 test5 執行以下sql mysql select from test where id in 3...