2013-01-08 3 views
-1

은이 같은 쿼리가 :mysql에서 두 필드와 한 값을 어떻게 사용합니까?

select * from users where `firstname` like '%jack%' or `lastname` like '%Mr green%' 

을하지만 그녀의 이름은 jack이며, 그녀의 마지막 이름은 Mr green 또는 FIRSTNAME 잭 씨이고 LASTNAME이 녹색 그 사람을 찾을 때이 코드는 적합하지 않습니다.
다른 단어에서 나는이 텍스트 상자에 firstname과 lastname 사이에 하나의 공백을 넣고 사용자 테이블에서 검색하고 searcher로 검색하는 사용자를 찾습니다 (searcher는 누가 텍스트 상자를 채우는가).
두 열에 like을 사용할 방법이 있습니까?

+1

이 왜이 적합하지 않습니다 사용할 수 있습니다 이름 값이 경우 생각하십니까? –

+0

나는 그녀의 이름이 'Jack Mr Green'이라는 사람을 하나의 쿼리에서 찾을 수 있기 때문에. – aya

+0

당신이 원한 것이 아닌가요? 테스트 데이터 및 결과로 얻을 수있는 것을 얻을 수 있습니까? –

답변

2

난 당신이

(`firstname` like '%value%' or `lastname` like '%value%' or concat(firstname,' ', lastname) LIKE '%value%') 
+0

'concat'이 차이를 만드는 유일한 방법은 이름이'jack mr'이고 성이'green' 인 경우입니다. – h2ooooooo

1

변경 ORAND에 :

select * from users 
where `firstname` like '%jack%' 
AND `lastname` like '%Mr green%' 
0

그것은 당신이 요구하는지 정확히 알 어렵다,하지만 난 당신이 원하는 생각이 같은에서 이름 또는 성 일치 (있지만 둘을하는 것입니다 시간). 이 경우 :

SELECT 
    * 
FROM 
    `users` 
WHERE 
    (
     `firstname` LIKE '%jack%' 
     AND 
     `lastname` NOT LIKE '%Mr green%' 
    ) 
    OR 
    (
     `firstname` NOT LIKE '%jack%' 
     AND 
     `lastname` LIKE '%Mr green%' 
    ) 
관련 문제