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