1

NOT INとをどのように組み合わせLIKEますか?

名前の列 (「ブルー チーズ」、「ゴーダ チーズ」など) を含むテーブルがあり、「チーズ」、「ミルク」などを含まないすべての名前を選択したいとします。肉'。

私が理解している限り、使用する文字列の配列にないものを探し、文字列を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 に答える