2013-05-31 5 views
1

NOT INLIKE을 어떻게 조합합니까?PostgreSQL에서 NOT IN과 LIKE를 결합하는 방법은 무엇입니까?

이름의 열 ('blue cheese', 'gouda cheese'등)이 포함 된 표가 있고 '치즈', ' 우유, 고기. 지금까지 내가 당신이 NOT IN 사용하는 문자열 배열에없는 무언가를 살펴보고 문자열

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

을 통과하지만, 어떻게 그것을

LIKE '%cheese%' 

을 통과 할 수있는 이해

?

답변

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을 사용하려면 와일드 카드 문자가 필요합니다. ! ~ ALL (...)`/`WHERE은 <> ALL (...)`WHERE가있는 경우`또는 :

NOT = ANY (...) 
+1

@boo_boo_bear을 : 당신은 정말 평등을 원한다면, 당신은 사용할 수 있습니다 NULL 값은 포함되지 않습니다. –