2013-07-08 4 views
1

하위 문자열 찾기 :MySQL의 쿼리 나는이 같은 테이블이

country (id, name) 

내가 예를 들어, 검색 문자열이 "사람 Russian Federation"이고 내 테이블에 값이 "러시아"저장되어있는 ID를 찾고 싶어요.

기본적으로 저장된 값은 검색 문자열의 부분 문자열입니다.

select * 
from country 
where concat(' ', SEARCHSTRING, ' ') like concat('% ', name, ' %') 

또는 당신은 find_in_set()가 사용할 수 있습니다 : : 그런 경우

답변

4

당신은 이런 식으로 시도 할 수 있습니다 : 여기

SELECT * 
    FROM Country 
    WHERE 'Russian Federation' LIKE CONCAT('%', Name, '%') 

SQL Fiddle 데모.

1

, 당신은 할 수

select * 
from country 
where find_in_set(name, replace(SEARCHSTRING, ' ', ',')) > 0; 
+0

find_in_set 함수를 사용하면 작동하지 않는 것처럼 보입니다. http://sqlfiddle.com/#!2/bfb49/13/0 – Danilo

관련 문제