mysql查詢按照指定欄位的指定順序進行排序

2021-10-04 04:22:32 字數 559 閱讀 6172

之前我們已經了解的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...