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.