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全文。 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