PostgreSQL 9에서 LIKE/ILIKE 연산자를 사용할 때 완전 단락 된 ~ 연산자 정규 표현식을 사용하지 않고도 단어 경계를 일치시킬 수 있습니까?ILIKE 매치 워드 경계 PostgreSQL 9
SELECT 'Super fast training' ILIKE '%train\M%' as match;
\ M 단어의 끝의 경계와 일치
거짓
감사를 반환
,
마크
PostgreSQL 9에서 LIKE/ILIKE 연산자를 사용할 때 완전 단락 된 ~ 연산자 정규 표현식을 사용하지 않고도 단어 경계를 일치시킬 수 있습니까?ILIKE 매치 워드 경계 PostgreSQL 9
SELECT 'Super fast training' ILIKE '%train\M%' as match;
\ M 단어의 끝의 경계와 일치
거짓
감사를 반환
,
마크
당신이 그것을 할 수 있습니다 예를 들어
다음 트릭이 있음 :
SELECT ' ' || 'Super fast training' ILIKE '%train %'
하지만 나는 그렇게 생각하지 않아서 좋은 생각입니다. 정규식이나 PostgreSQL fulltext를 대신 사용할 수 있습니다. PostgreSQL 정규식은 ILIKE 나 LIKE보다 현저히 느리지 않습니다.
그것은 내 경우에 도움이 :
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
스페이스 시작 및 구문과 일치 구문의 끝이 필요합니다. 공백없이 올바르게 작동하지 않았습니다.
이 예제는 ~*
연산자를 사용할 때보 다 빠르게 작동합니다.