如何以不同的方式排序

Ale*_*xey 0 mysql sql

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)

Dan*_*ing 5

首先根据是否为意大利对数据进行排序,将意大利排在第一位.然后根据标题排序.

SELECT * FROM countries
ORDER BY title='Italy' DESC, title
Run Code Online (Sandbox Code Playgroud)

(你必须知道的唯一技巧 - 或试验 - 是FALSE之前的TRUE,因此DESC在代码中.我想如果你将它们转换为0 <1,这是有意义的.)