说明:本文所使用的数据库样例表创建脚本下载地址:https://github.com/zhaoxd298/mysql_scripts
在SELECT语句中,可以对数据根据WHERE子句指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出,其格式如下所示:
SELECT 列名
FROM 表名
WHERE 搜索条件;
WHERE子句位置:WHERE子句应位于表名(FROM子句)之后。在同时使用ORDER BY子句时,ORDER BY应该位于WHERE之后,否则将产生错误。
1.WHERE子句操作符
下表列出WHERE子句的所有条件操作符:
2.检查单个值
下面例子列出产品名为fuses的产品:
mysql> SELECT prod_name, prod_price
-> FROM products
-> WHERE prod_name = 'fuses';
执行结果:
下面例子列出价格小于10美元的所有产品:
mysql> SELECT prod_name, prod_price
-> FROM products
-> WHERE prod_price <= 10;
执行结果:
3.不匹配检查
以下例子列出不是由供应商1003制造的所有产品:
mysql> SELECT vend_id, prod_name
-> FROM products
-> WHERE vend_id <> 1003;
运行结果:
符号“!=”和“<>”的作用是相同的,下面用“!=”实现上面例子:
mysql> SELECT vend_id, prod_name
-> FROM products
-> WHERE vend_id != 1003;
4.范围值检查
BETWEEN操作符用于检查某个范围的值。其语法和其他WHERE语法稍有不同,如下所示:
WHERE 列名 BETWEEN 最小值 AND 最大值;
下面例子检索出价格在5美元到10美元之间的所有产品:
mysql> SELECT prod_name, prod_price
-> FROM products
-> WHERE prod_price BETWEEN 5 AND 10;
运行结果:
5.空值检查
在创建表时,表设计人员可以指定其中的列是不是可以不包含值。在一个列不包含值时,称其为包含空值NULL。子句IS NULL用来检查具有NULL值的列,其语法如下:
WHERE 列名 IS NULL;
下面例子列出没有电子邮件地址的顾客:
mysql> SELECT cust_id
-> FROM customers
-> WHERE cust_email IS NULL;
运行结果: