在PostgreSQL 9中使用LIKE / ILIKE运算符时,是否可以匹配字边界而无需使用完整的〜运算符正则表达式?
例如
SELECT 'Super fast training' ILIKE '%train\M%' as match;
其中\ M是单词末尾的边界,匹配返回 false
谢谢,
标记
答案 0 :(得分:1)
你可以通过以下技巧来实现:
SELECT ' ' || 'Super fast training' ILIKE '%train %'
但我不会这么做,所以这是一个好主意。您可以使用正则表达式或PostgreSQL全文。 PostgreSQL正则表达式并不比ILIKE或LIKE慢得多。
答案 1 :(得分: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
短语和匹配短语的开头和结尾的空格是必要的。没有空格,它无法正常工作。
此示例比我们使用~*
运算符时更快。