2014-09-18 5 views
0

올바른 SQL 문은 텍스트 입력란에 'text field'와 같이 두 단어를 검색 할 때 'text'와 'field'가있는 모든 결과를 반환합니다. 그것은 LIKE 문을 사용합니까? 올바른 용어를 찾아서 검색 할 수 없습니다.두 단어에 대한 MySQL LIKE

편집 : 가능하면 동적으로 만들고 싶습니다. 사용자가 5 단어를 검색하는 경우처럼 5 개 단어 모두가 Like 문에 포함됩니다. 나는 문
SELECT * FROM table WHERE search (LIKE %searchterm1%) OR (LIKE %searchterm2%) OR (LIKE %searchterm3%) .... 올바른 구문은

+0

추가 정보를 반영하도록 제 답변을 업데이트했습니다. – worldofjr

답변

0

을 달성하기 위해 노력하고 있어요;

SELECT * FROM table WHERE (column1 LIKE '%text%' AND column1 LIKE '%field%') 

당신이 입력 문자열을 폭발이 같은 결과 배열을, 내파 수 PHP를 사용하는 가정 먼저 SQL injection의 문제를 살펴 입력 여러 단어로 사용자를 허용하지만,하려면;

$values = explode(" ", $input); // delimiter is a space 
$query = "SELECT * FROM table WHERE (column1 LIKE '%" . implode("%' AND column1 LIKE '%",$values) . "%')"; 

희망이 있습니다.

0

다음은 단어가 정렬되지 않은 사용을있는 단어는 사용에게 검색 용어 자체

LIKE '%word1%word2%' 

에서 암시 적 연계를 주문하는 경우 표준 logical conjunction (aka AND)

LIKE '%word1%' AND LIKE '%word2%' 

등 와일드 카드 (따옴표)로 수정 필요한; a full-text search이 더 적절할 수도 있습니다.