likes
comments
collection
share

MySQL-WHERE子句 以及 逻辑操作符

作者站长头像
站长
· 阅读数 26

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.