2011-03-26 2 views
0

검색 텍스트가 테이블의 어떤 필드에 있는지보고 싶지만 이미있는 WHERE 절에 추가해야합니다.PHP의 MySQL 문과 다른 필드 확인

AND name LIKE '%{$search_text}%' OR email LIKE '%{$search_text}%' 

누군가가 나를 제대로 이것을 작성하는 데 도움 수 :

SELECT * FROM table WHERE name = 'test' AND email = '[email protected]' 

나는 경우 확인하려면이 추가 조항의 끝에 추가 할 필요가?

또한 SQL을 사용하여 해당 테이블의 모든 필드를 검사하여 검색 텍스트가 원하는 위치에 있는지 확인할 수 있다면 더 좋을 것입니다. 당신은 아마 인덱스를 사용할 수 없습니다은 "OR"키워드 다음에있는 것과 같은 와일드 카드로 시작이

SELECT * 
FROM table 
WHERE (name = 'test' AND 
     email = '[email protected]') 
    OR (name LIKE '%{$search_text}%') 
    OR (email LIKE '%{$search_text}%') 

검색처럼 뭔가를 찾고있는 것처럼

+0

전체 텍스트 검색은 아마도 좋은 아이디어 일 것입니다. –

+0

명확하지 않다면, 당신이 의미하지 않는 한 name \ email이 알려진 값이고 검색된 점은 무엇입니까? AND –

+0

전체 텍스트 검색이 의미하는 것이 확실하지 않습니다. 예 mysql입니다 – tmartin314

답변

0

는 소리가 난다. 대형 테이블에서 성능 저하가 예상됩니다.

0

간단한 조건을 사용하여 mysql 행의 모든 ​​필드를 검색 할 수 없습니다. 이와 같은 구문을 사용하면됩니다.

 
OR (name LIKE '%text%' OR fullname LIKE '%text%' ..)