如何结合NOT IN
和LIKE
?
假设我们有一个包含名称的列(像“蓝奶酪”,“豪达奶酪”等)的表,我想选择所有不包含“奶酪”,“牛奶”的名字,'肉'。
据我了解,寻找的东西是不是在一个字符串数组您使用NOT IN
与通过串
SELECT names FROM some_table NOT IN('cheese','milk','meat');
但我怎么传
LIKE '%cheese%'
呢?
如何结合NOT IN
和LIKE
?
假设我们有一个包含名称的列(像“蓝奶酪”,“豪达奶酪”等)的表,我想选择所有不包含“奶酪”,“牛奶”的名字,'肉'。
据我了解,寻找的东西是不是在一个字符串数组您使用NOT IN
与通过串
SELECT names FROM some_table NOT IN('cheese','milk','meat');
但我怎么传
LIKE '%cheese%'
呢?
将构建LIKE ANY (ARRAY[...])
似乎满足您的需求;
craig=> SELECT a FROM (
VALUES ('cheesy'), ('imilk'), ('donut'), ('pie'), ('avocado'), ('meaty')
) x(a)
WHERE NOT a LIKE ANY (ARRAY['%cheese%','%milk%','%meat%']);
a
---------
cheesy
donut
pie
avocado
(4 rows)
如果你想使用你所需要的通配符LIKE
这种方式。 如果你真的只是想平等,你可以使用:
NOT = ANY (...)