1

你如何结合NOT INLIKE

假设我们有一个表,其中包含一列名称(例如“blue cheese”、“gouda cheese”等),我想选择所有不包含“cheese”、“milk”、“肉'。

据我了解,查找不在您使用的字符串数组中的内容NOT IN并传递字符串

SELECT names FROM some_table NOT IN('cheese','milk','meat');

但我该如何通过

LIKE '%cheese%'

给它?

4

1 回答 1

3

该构造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 (...)
于 2013-05-31T15:14:40.480 回答