2014-09-10 43 views
1

與功能,我可以找到行與指定的值:mysql中in函數的反義詞是什麼?

SELECT * FROM table1 WHERE value IN (1,3,4); 

,但我怎麼能選擇是不是1,3,4的值:

SELECT * FROM table1 WHERE value != (1,3,4); 
+8

了 - 不,不是用的[SQL中的IN操作符瑜] – Strawberry 2014-09-10 15:49:55

+1

可能重複(http://stackoverflow.com/questions/6219526/opposite -of-在運營商,在-SQL) – 2014-09-10 15:51:55

回答

6

,我認爲你是什麼尋找的是NOT IN

SELECT * FROM table1 WHERE value NOT IN (1,3,4); 
2
SELECT * FROM table1 
WHERE value IS NULL OR value NOT IN (1,3,4) 
; 

說明:

  • IN刪除重複和空值:(a,b,b, NULL) - >(a,b)
  • NULL的值的產率false
  • NULL爲NULL比較的比較也產生false

結果:

SELECT COUNT(*) FROM mytable WHERE color IN ('red', 'blue'); 

and

SELECT COUNT(*) FROM mytable WHERE color NOT IN ('red', 'blue'); 

無須數到:

SELECT COUNT(*) FROM mytable; 
相關問題