在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
空間在開始和短語和詞組匹配的結束是必要的。沒有空格就無法正常工作。
這個例子的運行速度比我們使用~*
運算符時要快。