我想写这样的东西:
SELECT * FROM table ORDER BY id 0, 1 DESC
所以我可以按ID从最后一个到第一个对结果进行排序,而让前两个保持静止。
因此,如果我有此表(仅作为示例):
id lucky_number
0 10
1 20
2 30
3 40
4 50
5 60
我会得到这个结果:
id lucky_number
0 10
1 20
5 60
4 50
3 40
2 30
我该如何实现?
答案 0 :(得分:2)
您在正确的轨道上,可以在ORDER BY
中添加一个变量,其ID为0或1时为1,然后按降序排序,然后按id
排序,但使用{{ 1}},当-id
不为0或1时,这些值将按降序排列:
id
输出:
SELECT *
FROM `table`
ORDER BY id IN (0,1) DESC, CASE WHEN id IN (0,1) THEN id ELSE -id END;
答案 1 :(得分:1)