2014-09-18 2 views
0

올바른 SQL 문은 텍스트 상자의 'text field'와 같은 두 단어를 검색 할 때 'text'와 'field'가있는 모든 결과를 반환합니다. 그것은 LIKE 문을 사용하여? 검색을하기에 적합한 용어를 찾을 수 없습니다. 가능하면 동적으로 만들고 싶습니다. 사용자가 5 단어를 검색하는 경우처럼 5 개 단어 모두가 Like 문에 포함됩니다. 나는 이와 같은 성명을 성취하려고 노력하고있다.MySQL의 LIKE 문 - 여러 단어

SELECT * 
FROM TABLE 
WHERE SEARCH (LIKE %searchterm1%) 
    OR (LIKE %searchterm2%) 
    OR (LIKE %searchterm3%) .... 
+0

전체 텍스트 검색이 필요합니다. 구글 그것. http://stackoverflow.com/questions/17009208/mysql-fulltext-search-in-php-using-string-contaning-keywords – AK47

+0

이 문제를 관리하는 데 regexp를 사용하는 것이 더 쉽다고 생각합니다. – iamawebgeek

답변

0

시도해보십시오. 여기

SELECT * 
FROM TABLE 
WHERE SEARCH 
REGEXP 'searchterm1|searchterm2|searchterm3' 
0

http://dev.mysql.com/doc/refman/5.1/en/regexp.html#operator_regexp는 LIKE 비교 연산자를 문자열 'cdef', 'hijk' 모두 포함 col 열의 값이

SELECT t.* 
    FROM mytable t 
WHERE t.col LIKE CONCAT('%','cdef','%') 
    AND t.col LIKE CONCAT('%','hijk','%') 
    AND t.col LIKE CONCAT('%','mnop','%') 

행만 사용하는 SQL 선택 문장의 예 및 'mnop'이 반환됩니다.


LIKE 비교 연산자에 대해 구체적으로 질문했습니다. 정규 표현식과 일치하는 REGEXP 연산자도 있습니다. 전체 텍스트 검색 기능은 사용 사례에 잘 어울립니다.