MySQL-WHERE子句 以及 邏輯操作符

LiberHome發表於2022-06-10

WHERE子句

我們一般使用where子句進行資料過濾,比如:

SELECT p_id FROM products WHERE p_price<5;
  • 使用ORDER BY應該放在WHERE之後 否則會報錯。
  • WHERE子句的操作符除了有大於小於等於之外還有不等於(不等於有兩種寫法:<>和!=)以及閉區間內BETWEEN。

特別地,MySQL有一個特殊的WHERE子句IS NULL用來判空:

SELECT p_id FROM products WHERE p_price IS NULL;

邏輯操作

AND操作符

需要同時滿足多個過濾性條件的時候可以使用AND,每加一個條件加一個AND,例如:

SELECT p_id FROM products WHERE p_price<500 AND p_brand='Apple';

OR操作符

不需要同時滿足給出的所有條件,只要有一個條件滿足即可,例如:

SELECT p_id FROM products WHERE p_price<500 OR p_brand='Apple';
  • MySQL中AND的優先順序高於OR,所以如果要進行復雜的邏輯運算請新增適當的圓括號。

IN操作符

IN操作符有點像列舉,用來篩選符合括號內條件的資料,並且推薦使用IN,因為語法直觀,計算次序容易管理,操作比OR等更快,可以包含其他SELECT語句,例如:

SELECT p_id FROM products WHERE p_brand IN ('Apple', 'HUAWEI');

NOT

NOT操作符可以篩選出不滿足之後的條件資料,例如:

SELECT p_id FROM products WHERE p_brand NOT IN ('Apple', 'HUAWEI');

參考:Forta B. MySQL crash course[M]. Pearson Education India, 2006.

相關文章