WHERE子句用于筛选满足条件的记录,支持SELECT、UPDATE、DELETE操作;常用操作符包括=、、>、=、

在mysql中,WHERE 子句用于在查询数据时添加条件,从而筛选出满足特定要求的记录。它通常用在 select、UPDATE、delete 等语句中,帮助我们精确操作数据库中的数据。
基本语法结构
使用 WHERE 的基本语法如下:
SELECT 列名 FROM 表名 WHERE 条件;
UPDATE 表名 SET 列 = 值 WHERE 条件;
DELETE FROM 表名 WHERE 条件;
其中,“条件”是一个表达式,结果为真(TRUE)时,对应的行会被选中或操作。
常见的条件操作符
WHERE 支持多种比较和逻辑操作符,以下是一些常用类型:
- =:等于(例如:age = 18)
- 或 !=:不等于
- >:大于
- :小于
- >=:大于等于
- :小于等于
- AND:多个条件同时成立
- OR:满足任一条件即可
- NOT:取反
- IN:判断值是否在指定集合中
- BETWEEN:判断值是否在某个范围内
- LIKE:模糊匹配(支持 % 和 _)
- IS NULL:判断是否为空值
实际使用示例
假设有一张名为 users 的表,包含字段:id, name, age, city, status。
1. 查询年龄等于25的用户
SELECT * FROM users WHERE age = 25;
2. 查询城市是“北京”且状态为启用的用户
SELECT * FROM users WHERE city = ‘北京’ AND status = 1;
3. 查询年龄在20到30之间的用户
SELECT * FROM users WHERE age BETWEEN 20 AND 30;
4. 查询名字以“张”开头的用户
SELECT * FROM users WHERE name LIKE ‘张%’;
5. 查询城市为“上海”或“广州”的用户
SELECT * FROM users WHERE city IN (‘上海’, ‘广州’);
6. 更新某用户的邮箱信息(仅更新符合条件的记录)
UPDATE users SET email = ‘new@example.com’ WHERE id = 100;
7. 删除已标记为删除且创建时间早于某日期的记录
DELETE FROM users WHERE status = -1 AND create_time
注意事项
使用 WHERE 条件时需要注意以下几点:
- 字符串值要用单引号括起来(如 ‘北京’),数字则不需要
- 避免在 WHERE 中对字段使用函数,否则可能导致索引失效(影响性能)
- 使用 LIMIT 配合 WHERE 可防止误删或误改大量数据
- 在执行 UPDATE 或 DELETE 操作前,建议先用 SELECT 测试 WHERE 条件是否正确
- NULL 值不能用 = 或 != 判断,应使用 IS NULL 或 IS NOT NULL
基本上就这些。掌握 WHERE 条件的写法,就能灵活地查询和管理 MySQL 数据库中的数据。关键是理解操作符的组合方式,并注意语法细节和性能影响。