2017-10-21 7 views
0

커서를 매우 특별한 순서로 정렬하는 데 관심이 있습니다. 내 프로그램에서 사용자는 검색어를 입력 할 수 있습니다. 나는 그들이에 입력 한 쿼리를 시작하는 항목 으로 정렬 된 결과를 반환하고 싶습니다 간단한 쿼리를 포함하는 항목의 나머지 하였다.고급 SQLite ORDER BY 쿼리

예 : 사용자가 "de"를 입력합니다. 나는 내 커서가있는 방법으로 주문하고 싶은 경우 모든 열이 는 "드"첫째, "드"를 포함하는 열의 나머지가옵니다과 시작.

Deathless Behemoth 
Deathmark 
Deathmark Prelate 
Deathmask Nezumi 
Deathmist Raptor 
Deathpact Angel 
Acid Web Spider 
Careful Consideration 
Hell-Bent Raider 
Jhovall Rider 
Living Death 

단순히 "드"를 포함하는 다른 모든 것들 위에 "드"로 시작하는 커서를 : 여기에

은 내가 커서 모양을하고 싶은 것입니다.

추신 : 나는 사람들이 ORDER BY FIELD() 함수를 사용했던이 사이트에서 몇 가지 대답을 발견했다. 내가 사용하고자하는 것입니다,하지만 당신은 ORDER BY 절에서 표현의 모든 종류를 넣어라는 표현과 함께 오는 "시작 물건을 넣을 수 있습니다

Error while executing SQL query on database 'database_name': no such function: FIELD 

답변

2

오류를 얻을 것 같은 외모의 종류 '드'최초의 "꽤 똑바로 앞으로 CASE의 양식을 사용하여 :의 user_type 열이 'de'로 시작하는 경우

order by case when lower(user_type) like 'de%' then 0 else 1 end, 
     lower(user_type) 

는 그래서, case 표현 0로 평가를 그렇지 않으면 1로 평가 이후 0 종류의 이전 1으로 시작하면 'de'으로 시작하는 유형이 먼저옵니다.

field 함수는 AFAIK이며 MySQL에만 해당됩니다.

+0

와우는 매력처럼 작동했습니다. SQLite 쿼리에 대해 더 많은 것을 배울 수 있습니다. 감사! – hellaandrew