MySQL表中有些国家/地区:
id | title
1 | USA
2 | Spain
3 | Italy
4 | Canada
Run Code Online (Sandbox Code Playgroud)
我需要选择列表顶部的意大利和下面按标题排序的其他国家/地区.但'order by'不起作用.
(SELECT * FROM countries WHERE id = 3) UNION (SELECT * FROM countries WHERE id != 3 ORDER BY title)
Run Code Online (Sandbox Code Playgroud)
首先根据是否为意大利对数据进行排序,将意大利排在第一位.然后根据标题排序.
SELECT * FROM countries
ORDER BY title='Italy' DESC, title
Run Code Online (Sandbox Code Playgroud)
(你必须知道的唯一技巧 - 或试验 - 是FALSE之前的TRUE,因此DESC在代码中.我想如果你将它们转换为0 <1,这是有意义的.)