Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果id=',则始终位于底部;3';(在MySQL中使用`orderby`)_Php_Mysql_Database - Fatal编程技术网

Php 如果id=',则始终位于底部;3';(在MySQL中使用`orderby`)

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 此处演示: 首先按大小写表达式排

我想使用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
此处演示:


首先按
大小写
表达式排序,强制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

因为MySQL
boolean
表达式解析为
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