你如何结合NOT IN
和LIKE
?
假设我们有一个表,其中包含一列名称(例如“blue cheese”、“gouda cheese”等),我想选择所有不包含“cheese”、“milk”、“肉'。
据我了解,查找不在您使用的字符串数组中的内容NOT IN
并传递字符串
SELECT names FROM some_table NOT IN('cheese','milk','meat');
但我该如何通过
LIKE '%cheese%'
给它?
你如何结合NOT IN
和LIKE
?
假设我们有一个表,其中包含一列名称(例如“blue cheese”、“gouda cheese”等),我想选择所有不包含“cheese”、“milk”、“肉'。
据我了解,查找不在您使用的字符串数组中的内容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 (...)