2017-11-15 8 views
1

で "%%" と私はこのようなテーブルを持っています置く。は、カスタムの並べ替えのmysql

「si」で始まる単語でソートしたいと思います。

、出力はこのようなものです:

|city_name| 
Siberia 
Sibley 
Sicily Island 
Sidell 
Sidney 
... And the rest of the words that are '%si%' 

はどのようにこのソート(ORDER BY)が行われる必要がありますか?

答えて

3

あなたはあまりにもorder byや表現に複数のキーを使用することができます。

SELECT city_name 
FROM my_table 
WHERE city_name LIKE '%si%' 
ORDER BY (city_name LIKE 'si%') DESC, city_name; 

MySQLは真のために偽と「1」のための「0」で、数値コンテキストで数字としてブール式を扱います。 DESCはマッチ(1 =真)を最初に置きます。

2
SELECT city_name 
FROM my_table 
WHERE city_name LIKE '%si%' 
ORDER BY (city_name LIKE 'si%') DESC; 
関連する問題