具有特殊结果排序的SQL查询

Bri*_*ian 0 mysql sql sql-order-by

我有一个表有3列代表公交车路线的停靠点.

ID
stop_name
stop_order
Run Code Online (Sandbox Code Playgroud)

我想要返回一个从当前停止开始的停靠列表(我知道).因此,如果当前停止是第5号停止,则返回的内容如下:

stop_order
5
6
7
8
1
2
3
4
Run Code Online (Sandbox Code Playgroud)

我试过了:

Select * from routes where stop_order >= 3 and route = 'Red' 
Union 
Select * from routes where stop_order < 3 and route = 'Red
Run Code Online (Sandbox Code Playgroud)

如果数据按停靠顺序输入表中,则可以正常工作.如果不是,则按照输入的顺序返回数据.

a'r*_*a'r 6

您可以在一个查询中执行此操作,以使用case语句保存表访问.

select * from routes
where route = 'Red'
order by case when stop_order >= 3 then 0 else 1 end, stop_order
;
Run Code Online (Sandbox Code Playgroud)

更正!