如何首先列出id为x的数据,然后是数字顺序? 例如,我有这样的数据:
0,
1,
1,
0,
1,
2,
56,
4
我希望得到以下结果:
1,
1,
1,
0,
0,
2,
4,
56
此外,我希望id为1的项目的订单为列x,而id为1的项目的订单为y列。
答案 0 :(得分:1)
您可以使用order by
子句中的条件执行此操作。这是MySQL中的一种简单方法:
order by (id = 1) desc, id;
当id采用指定值时,表达式id = 1
的计算结果为1。否则评估为0。
顺序依次是通过这个表达式,然后是id。
编辑:
如果您想按其他列排序其他所有内容并且列的类型相同:
order by (id = 1) desc,
(case when id = 1 then x else y end)
否则,您可以将其拆分:
order by (id = 1) desc,
(case when id = 1 then x end),
(case when id = 1 then NULL else y end)