假设我有下表:
friends
_______
id name
1 johnny
2 tam
3 slick
4 mat
5 Rhanda
6 Tommy
7 ike
8 Spencer
9 Alan
我想获取所有朋友列表,但我希望id 5成为列表中的第一项。我希望下一个项目按时间顺序跟踪到最后。然后列表从头开始,直到返回所有结果。所以它应该像这样结束......
friends
_______
id name
5 Rhanda
6 Tommy
7 ike
8 Spencer
9 Alan
1 johnny
2 tam
3 slick
4 mat
我已经找到并尝试了这个但是你可以想象它只返回第一个项目,然后从1起订购其余的项目。我已经搜索并研究了这个2天了,真的可以使用一些帮助。有什么建议?
答案 0 :(得分:1)
您可以将表达式添加到order子句中,如下所示:
select id, name from table
order by
case when id >= 5 then 0 else 1 end
, id
答案 1 :(得分:1)
您可以使用:
order by (id >= 5) desc, id
首先将所有ID设置为5或更高。然后它按升序对每个部分进行排序。
MySQL将布尔表达式视为整数上下文中的整数,0表示false,1表示true。因此,要将真值放在第一位,需要desc
。