Php 如果id=',则始终位于底部;3';(在MySQL中使用`orderby`)
我想使用MySQL中的Php 如果id=',则始终位于底部;3';(在MySQL中使用`orderby`),php,mysql,database,Php,Mysql,Database,我想使用MySQL中的orderby对id值进行降序排序 但是如果id值等于3,请始终将其放在底部 结果如下: id ---- 0 2 1 3 7 1 6 3 1 我该怎么办 我的尝试: id ---- 7 6 2 1 1 1 0 3 3 问号应该是什么?首先按大小写表达式排序,强制id值为3到底,然后按id本身降序 SELECT id FROM `table` ORDER BY CASE WHEN id='3' THEN ??? END, id DESC 此处演示: 首先按大小写表达式排
orderby
对id
值进行降序排序
但是如果id
值等于3
,请始终将其放在底部
结果如下:
id
----
0
2
1
3
7
1
6
3
1
我该怎么办
我的尝试:
id
----
7
6
2
1
1
1
0
3
3
问号应该是什么?首先按
大小写
表达式排序,强制id值为3到底,然后按id本身降序
SELECT id FROM `table` ORDER BY CASE WHEN id='3' THEN ??? END, id DESC
此处演示:
首先按
大小写
表达式排序,强制id值从下到下,然后按id本身降序
SELECT id FROM `table` ORDER BY CASE WHEN id='3' THEN ??? END, id DESC
此处演示:
除了Tim的答案,我还想讨论布尔值:
SELECT id
FROM yourTable
ORDER BY CASE WHEN id = 3 THEN 1 ELSE 0 END,
id DESC
因为MySQL
boolean
表达式解析为0/1
,所以我们可以在这个特定场景中使用它
查看id等于3时,orderby看起来像orderby 1,DESC
对于除3之外的任何其他id,它看起来像是orderby0,DESC
此处演示:
除了Tim的答案,我还想讨论布尔值:
SELECT id
FROM yourTable
ORDER BY CASE WHEN id = 3 THEN 1 ELSE 0 END,
id DESC
因为MySQLboolean
表达式解析为0/1
,所以我们可以在这个特定场景中使用它
查看id等于3时,orderby看起来像orderby 1,DESC
对于除3之外的任何其他id,它看起来像是orderby0,DESC
此处演示:
这将对您有效:
SELECT
id
FROM
`table`
ORDER BY (id = 3), id DESC
这将对您有用:
SELECT
id
FROM
`table`
ORDER BY (id = 3), id DESC