我有一个简单的列表约25个字。我在Postgresql中有一个varchar字段,让我们说列表是[‘foo’,’bar’,’baz’]。我想找到我的表中有任何这些话的任何行。这将工作,但我想要更优雅的东西。
select * from table where (lower(value) like '%foo%' or lower(value) like '%bar%' or lower(value) like '%baz%')
您可以使用Postgres的
SIMILAR TO
操作符,它支持交替,即
select * from table where lower(value) similar to '%(foo|bar|baz)%';