Postgres SQL搜索第一个出现的字符串



我有这个表篮子TEXT这个Notes字段没有文本字段,为了简单起见,在下面的例子中,我在单词之间使用了一个空格,它可以有逗号、冒号或任何标点符号。我正在为给定的三个水果列表搜索Notes字段中找到的第一个水果:苹果、橙子、香蕉—此搜索条件列表是固定的。

tbody> <<tr>
Notes
香蕉;苹果、面包。燕麦片!牛奶
橘子,苹果,,。香蕉:
面包"燕麦&牛奶"
Apple,;Sugar:Banana,Orange.

您可以使用regexp_match()

select notes, 
(regexp_match(notes, '(?i)(apple|banana|orange)'))[1] as first_fruit
from basket;       

regexp_match()按找到的顺序返回所有匹配项的数组。然后[1]选择第一个数组元素。我通过指定(?i)使用了不区分大小写的匹配。如果您不希望这样,请删除(?i)并指定您希望找到的搜索词。

在线例子

最新更新