我有一个大约 25 个单词的简单列表。我在 PostgreSQL 中有一个 varchar 字段,假设列表是['foo', 'bar', 'baz']. 我想在我的表中找到任何包含这些单词的行。这会起作用,但我想要更优雅的东西。
['foo', 'bar', 'baz']
select * from table where (lower(value) like '%foo%' or lower(value) like '%bar%' or lower(value) like '%baz%')
您可以使用SIMILAR TO支持交替的 Postgres 运算符,即
SIMILAR TO
select * from table where lower(value) similar to '%(foo|bar|baz)%';