在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全文。 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
空间在开始和短语和词组匹配的结束是必要的。没有空格就无法正常工作。
这个例子的运行速度比我们使用~*
运算符时要快。