2014-04-29 2 views
0

으로 검색 결과를 좁힐 수 있습니다.는 어떻게 같은 큰 검색 querys를 실행하는거야 MySQL의

MySQL은 나에게 다음과 같은 행을 줄 것입니다 :

을 Heres

http://i.stack.imgur.com/kZSaS.png

Ryan Anthony Okeefe 
John Albert Doe 
Beau Jacob Diddly 
Anthony Quinn Jims 
Brooke Wame Gagne 

내 문제를. 이 때문에 가장 정확한 결과 만 얻고 싶습니다. 이 경우 첫 번째 결과가됩니다. 첫 번째 이름은 Ryan이고 첫 번째 및 중간 이름에 a가 들어 있습니다. 아무도 이걸 도와 줄 수 있니?

+0

왜'fname = 'Ryan''을 확인할 수 없습니까? – raina77ow

+0

왜 라이언입니까? 결과를 어떻게 주문 하시겠습니까? – fthiella

+0

사람들이 여러 가지를 찾기 위해 사용하는 검색 상자이기 때문에. 대부분의 친척으로 주문하고 싶습니다. 그래서 만약 내가 'ant ryan'을 넣으면, 적어도 두 개의 엔트리 중 하나를 포함하고있는 첫 번째 이름과 중간 이름 때문에 'Ryan Anthony'가 나에게 줄 것이다. – user3586203

답변

2

그것은 너무 효율이되지 않습니다,하지만 당신이 시도 할 수 :

ORDER BY 
    (gender LIKE '%a%') + 
    (fname LIKE '%a%') + 
    (mname LIKE '%a%') + 
    (lname LIKE '%a%') + 
    (address LIKE '%a%') + 
    (card LIKE '%a%') + 
    (email LIKE '%a%') + 
    (fname LIKE '%ryan%') + 
    (mname LIKE '%ryan%') + 
    (lname LIKE '%ryan%') + 
    (address LIKE '%ryan%') + 
    (card LIKE '%ryan%') + 
    (email LIKE '%ryan%'`) DESC 
LIMIT 1 

그러나, 나는 Full Text Search Functions에 조사 할 것입니다.

+0

성별, 멋진 해답을 얻은 후에 오타가 수정되었지만 OP가 당신의 충고에 따라 FULLTEXT를 사용하거나 서버가 작동하지 않아야합니다 :). – CodeBird