小编典典

选择查询,但显示记录号3的结果

sql

我有一些简单的查询:

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的结果如下:

|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   |

这可能吗?


阅读 148

收藏
2021-04-14

共1个答案

小编典典

这样您就可以得到id = 3

SELECT *
FROM tbl
ORDER BY (id = 3) DESC
-- ,id

按订单id此外,如果你想休息有序,太。

解释:

该表达式的计算结果为booleanFALSE(在mysql中为= 0)在TRUE(在mysql中为= 1 )之前进行排序,因此我们对降序进行排序。

它还可以自动覆盖的情况下idNULL。我在这里再次引用该手册

在执行ORDER BY时,如果执行ORDER BY … ASC,则将首先显示NULL值;如果执行ORDER BY …
DESC,则将显示NULL值。

2021-04-14