内容摘要:如何使用 SELECT 语句的 WHERE 子句指定搜索条件。
6.1 WHERE 子句
只检索所需数据需指定“搜索条件”,搜索条件也成为“过滤条件”。
SELECT 列名 FROM 表名 WHERE 搜索条件; 根据搜索条件在某表中检索某些列。
SELECT prod_name,prod_price FROM products WHERE prod_price = 2.50; // 从 products 表中检索两列,只返回 prod_price 为 2.5 的行
注意:在同时使用 ORDER BY 和 WHERE 时,应该让 ORDER BY 位于 WHERE 之后。
6.2 WHERE 子句操作符
MySQL 支持以下列表中的所有条件操作符:
操作符 | 说明 |
=
| 等于(不再是双等号) |
<>
| 不等于 |
!=
| 不等于(与上者等价) |
<
| 小于 |
<=
| 小于等于 |
>
| 大于 |
>=
| 大于等于 |
BETWEEN
| 在指定的两个值之间 |
6.2.1 检查单个值
SELECT prod_name,prod_price FROM products WHERE prod_name = ‘fuses’; // 检查 prod_name 值为 fuses 的这一行
SELECT prod_name,prod_price FROM products WHERE prod_price < 10; // 列出价格小于 10 的产品
6.2.2 不匹配检查
以下例子列出 不是由供应商 1003 制造的所有产品:
SELECT vend_id,prod_name FROM products WHERE vend_id <> 1003; // 不是由 1003 供应商制造的所有产品
注意:将值与字符串类型比较,需要加单引号,与值比较,不加单引号。
6.2.3 范围值检查
SELECT 列名 FROM 表名 WHERE 列名 BETWEEN 最小值 AND 最大值;
SELECT prod_name,prod_price FROM products WHERE prod_price BETWEEN 5 AND 10; // 从 products 表中检索 prod_name 和 prod_price 信息,并且只取 prod_price 值在 5 到 10 之间(包括 5 和 10)的 product
6.2.4 空值检查
NULL:空值,他与字段包含 0、空字符串或仅仅包含空格都不同。
SELECT 列名 FROM 表名 WHERE 列名 IS NULL; 返回所有空值的结果。
SELECT prod_name FROM products WHERE prod_price IS NULL;