id
----
0
2
1
3
7
1
6
3
1
我想在 MySQL 中使用 ORDER BY
对 id
值进行降序排序。
但是如果id
的值等于3
,总是放在底部。
结果是这样的:
id
----
7
6
2
1
1
1
0
3
3
我该怎么办?
我的尝试:
SELECT id FROM `table` ORDER BY CASE WHEN id='3' THEN ??? END, id DESC
问号应该是什么?
最佳答案
除了 Tim 的回答之外,我还想尝试一下 bool 值:
SELECT
id
FROM
`table`
ORDER BY (id = 3), id DESC
自从 MySQL boolean
表达式解析为 0/1
这样我们就可以在这个特定场景中使用它。
看id is equal to 3
那么顺序看起来像 ORDER BY 1, <id> DESC
.
对于 3 以外的任何其他 ID,它看起来像 ORDER BY 0, <id> DESC
此处演示:
SQLFiddle
关于php - 如果 id 为 ='3',则始终位于底部(在 MySQL 中使用 `ORDER BY`),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39095728/