Boo*_*oza 4 mysql sql-order-by
我正在尝试优先考虑我的查询ticket_priority_id.
ID被归类为ASAP,HIGH,MED,LOW.
当我按顺序排序时,ticket_priority_id总是按字母顺序排列(LOW超前MED).
我怎样才能做到这一点,我可以按顺序ticket_priority_id但不按字母顺序排序,但重要性.我想要订单(从上到下)ASAP- HIGH- MED-LOW
您可以在订单中使用case语句
ORDER BY
CASE WHEN ticket_priority_id = 'ASAP' THEN 1
WHEN ticket_priority_id = 'HIGH' THEN 2
WHEN ticket_priority_id = 'MED' THEN 3
WHEN ticket_priority_id = 'LOW' THEN 4
ELSE 5
END
Run Code Online (Sandbox Code Playgroud)
你可以使用FIELD函数:
ORDER BY
FIELD(ticket_priority_id, 'ASAP', 'HIGH', 'MED', 'LOW')
Run Code Online (Sandbox Code Playgroud)
请注意,如果ticket_priority_id以下列表中没有,它将返回0,因此您可能还想添加以下内容:
ORDER BY
ticket_priority_id NOT IN ('ASAP', 'HIGH', 'MED', 'LOW'),
FIELD(ticket_priority_id, 'ASAP', 'HIGH', 'MED', 'LOW')
Run Code Online (Sandbox Code Playgroud)
将没有优先级的行放在底部而不是顶部.
| 归档时间: |
|
| 查看次数: |
626 次 |
| 最近记录: |