2013-07-20 1 views
0

I가 내가 "안녕하세요"가MySQL의 LIKE 주문 니어 완전 일치

Oh hello there 
Hello there 
Hello there how are you 

같은를 반환하지만 내가 원하는 검색하면 이제 LIKE

SELECT * FROM table WHERE column LIKE '%$search%' 

를 사용하여 정보를 가져옵니다 쿼리 정확히 일치하는 순서로 정렬하려면

맨 위에 정확하게 일치하고 시작 부분에 정확히 일치하는 항목이있는 경우 그

답변

9

내가 주문한 정확한 경기 후 결과를 가질 수있는 방법이이

SELECT * FROM table1 WHERE column LIKE '%$search%' 
    order by case when column like '$search%' then 1  //hello in begining 
        when column like '%$search%' then 2  //hello in middle 
        when column like '%$search' then 3 end //hello in end 

watch demo here

+0

아무것도 반환하지 않습니다. hmm – user2458791

+0

아무 것도 반환하지 않습니까? 내 대답을 확인하고 데모를 봐라. –

+0

나는 내 변수를 변경하고 열 이름을 변경했다. – user2458791

-2
SELECT * FROM table WHERE column LIKE '%$search%' ORDER BY column 
+0

아니오, – user2458791

6

사용 INSTR 후 문장의 열에서 검색 문자열의 위치에 의해 결과를 주문하는 :; 문자열이 문장을 시작하는 경우

SELECT * FROM table 
WHERE column LIKE '%$search%' 
order by INSTR(column, '$search') 
+0

큰 감사 나에게 동일한 출력을 제공하려고 , "hello there"와 같이 "안녕하세요." – user2458791

+0

@ user2458791 :'INSTR()'을 사용할 수 있습니다. 내 업데이트를 참조하십시오. –