我有一张这样的表:
|city_name|
Shadyside
Chalkyitsik
Wyalusing
Quartzsite
Seaside
Shawnee Mission
Siberia
Sibley
Nicasio
Lacassine
Sicily Island
Andalusia
Sidell
Sidney
...
..
.
使用以下查询进行选择:
SELECT city_name FROM my_table WHERE city_name LIKE '%si%'
而不是'%si%'可以放任何东西。
我想按照首先使用' si'。
开头的词排序输出如下:
|city_name|
Siberia
Sibley
Sicily Island
Sidell
Sidney
... And the rest of the words that are '%si%'
如何进行排序(ORDER BY
)?
答案 0 :(得分:3)
您也可以在order by
和表达式中使用多个键:
SELECT city_name
FROM my_table
WHERE city_name LIKE '%si%'
ORDER BY (city_name LIKE 'si%') DESC, city_name;
MySQL将布尔表达式视为数字上下文中的数字,使用" 0"为假和" 1"真的。 DESC
首先放置匹配(1 = true)。
答案 1 :(得分:2)
SELECT city_name
FROM my_table
WHERE city_name LIKE '%si%'
ORDER BY (city_name LIKE 'si%') DESC;