我正在尝试搜索文本字段,以检查搜索列表中的任何短语是否在文本字段中。如果它们整体存在,则查询应返回True,否则应返回false。
示例: 搜索列表-“蝙蝠”,“球”
当前,如果我在Redshift中使用以下正则表达式,
SELECT text_field ~ 'at bat|at ball' FROM table
它也可以部分匹配。示例-击球。我也尝试了以下方法,
SELECT text_field ~ '(^|\\W)(at bat|at ball)(\\W|$)' FROM table
并且我没有在应该获取匹配项的任何行上获取匹配项。在Redshift中搜索整个单词短语的最佳方法是什么? text_field均为小写。
答案 0 :(得分:0)
~
(波浪号)运算符支持一组有限的正则表达式语法。
建议改用REGEXP_INSTR
函数。 https://docs.aws.amazon.com/redshift/latest/dg/REGEXP_INSTR.html
select venuename, regexp_instr(venuename,'[cC]ent(er|re)$')
from venue
where regexp_instr(venuename,'[cC]ent(er|re)$') > 0
limit 5;