我有一些简单的查询:
SELECT * FROM table
你们都知道结果:
|id| foo | bar | ------------------------- |1 | aaa | 123 | |2 | bbb | 234 | |3 | ccc | 345 | |4 | ddd | 456 |
但是,我想从记录3中显示什么?我知道我可以做到SELECT * FROM table where id=3,但是我需要将选择的记录设置在第一位,可以说我选择id=3的结果如下:
SELECT * FROM table where id=3
id=3
|id| foo | bar | ------------------------- |3 | ccc | 345 | |4 | ddd | 456 | |1 | aaa | 123 | |2 | bbb | 234 |
或者
|id| foo | bar | ------------------------- |3 | ccc | 345 | |1 | aaa | 123 | |2 | bbb | 234 | |4 | ddd | 456 |
这可能吗?
这样您就可以得到id = 3:
id = 3
SELECT * FROM tbl ORDER BY (id = 3) DESC -- ,id
按订单id此外,如果你想休息有序,太。
id
该表达式的计算结果为boolean。FALSE(在mysql中为= 0)在TRUE(在mysql中为= 1 )之前进行排序,因此我们对降序进行排序。
FALSE
TRUE
它还可以自动覆盖的情况下id是NULL。我在这里再次引用该手册:
NULL
在执行ORDER BY时,如果执行ORDER BY … ASC,则将首先显示NULL值;如果执行ORDER BY … DESC,则将显示NULL值。