2017-11-15 4 views
1

에서 "%%"으로 나는이 같은 테이블이사용자 정의 정렬 MySQL의

대신 '%의 실리콘 %'의
SELECT city_name FROM my_table WHERE city_name LIKE '%si%' 

, 아무것도 할 수 놓아 라.

'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 = true)을 먼저 넣습니다.

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