ILIKE匹配单词边界9的PostgreSQL(ILIKE Match Word Boundarie

2019-10-18 11:38发布

当的PostgreSQL 9使用LIKE / ILIKE操作者是有可能匹配字边界,而不必使用完全成熟〜操作正则表达式?

例如

SELECT 'Super fast training' ILIKE '%train\M%' as match; 

其中\ M是在单词的末尾边界和匹配返回false

谢谢,

标记

Answer 1:

你可以用下面的技巧做:

SELECT ' ' || 'Super fast training' ILIKE '%train %'

但我不hink所以这是一个好主意。 您可以使用正则表达式或PostgreSQL全文代替。 PostgreSQL的正则表达式是不显著比ILIKE或喜欢慢一些。



Answer 2:

它有助于我的情况:

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

在空间开始,词组和短语匹配的结束是必要的。 它没有不带空格正常工作。

这个例子的作品比,当我们使用更快的~*运营商。

PS:感谢对https://stackoverflow.com/a/29798772/2997850



文章来源: ILIKE Match Word Boundaries PostgreSQL 9