1

PostgreSQL 9에서 LIKE/ILIKE 연산자를 사용할 때 완전 단락 된 ~ 연산자 정규 표현식을 사용하지 않고도 단어 경계를 일치시킬 수 있습니까?ILIKE 매치 워드 경계 PostgreSQL 9

SELECT 'Super fast training' ILIKE '%train\M%' as match; 
\ M 단어의 끝의 경계와 일치 거짓

감사를 반환

,

마크

답변

1

당신이 그것을 할 수 있습니다 예를 들어

다음 트릭이 있음 :

 
SELECT ' ' || 'Super fast training' ILIKE '%train %' 

하지만 나는 그렇게 생각하지 않아서 좋은 생각입니다. 정규식이나 PostgreSQL fulltext를 대신 사용할 수 있습니다. PostgreSQL 정규식은 ILIKE 나 LIKE보다 현저히 느리지 않습니다.

0

그것은 내 경우에 도움이 :

WITH phrase_to_match AS (
    SELECT 'Super fast training' AS phrase 
    UNION ALL 
    SELECT 'Super fast train' AS phrase 
) 

SELECT ' ' || phrase || ' ' ILIKE '% train %' 
FROM phrase_to_match 

스페이스 시작 및 구문과 일치 구문의 끝이 필요합니다. 공백없이 올바르게 작동하지 않았습니다.

이 예제는 ~* 연산자를 사용할 때보 다 빠르게 작동합니다.

추신 : https://stackoverflow.com/a/29798772/2997850