2014-06-19 5 views
3

정렬되지 않은 정보가있는 필드와 특정 패턴 검색이있는 특정 레코드를 찾으려면 Ineed가 있습니다. 예를 들어 :포스트 그레스의 테이블 필드에서 특정 문자 검색

field1 , field2 
1  , "house, cars, people" 
2  , "mazda, Jefff, cat 15th stre" 
3  , "do, money, arreaz, cars" 
. 
. 
N  , "cars, postgres, json, abat" 

내가 포스트 그레스는 단어 "자동차"사람에게

감사가있는 경우에만 레코드를 검색하는 것처럼 누가 당신은 당신의 특정 예와 일치하는 정규 표현식을 사용한다

답변

3

수 있도록 할 수 있습니다 O를, 문자열의 끝에서 시작을 정규 표현식으로

field2 ~ '^cars$' or 
field2 ~ ',cars,' or 
field2 ~ '^cars,' or 
field2 ~ ',cars$' 

당신은 문자열의 시작 부분에 쉼표를 검색 할 수 있습니다 : 다음 작업을 수행 할 수 있습니다 FA 문자열, 등

0

의 PostgreSQL의 regular expressions' definition of word characters (영숫자 문자 (들) 및/또는 밑줄 _의 단어 consit)이 당신을 위해 충분히 좋은 경우에, 당신이 사용할 수 있습니다

WHERE field2 ~ '\mcars\M' 

을 당신은 또한 수 pg_trgm contrib module을 사용하여 쿼리의 속도를 높이십시오.

그러나 PostgreSQL's full text search 지원을 확인하거나 (설명에서 필드를 검색하려는 경우) 구조를 수정해야합니다 (예 : field2 항목에 대해 다른 표를 사용할 수 있음). , 또는 심지어 쉼표로 구분 된 필드 대신 배열).

관련 문제