在mysql中,WHERE子句用于筛选满足条件的记录,支持select、UPDATE和delete操作;其基本语法为SELECT 列名 FROM 表名 WHERE 条件,常用操作符包括=、<>、<、>、<=、>=、IN、BETWEEN、LIKE和IS NULL;可通过AND、OR、NOT组合多个条件实现复杂查询;在UPDATE和DELETE中使用WHERE可避免误操作全表数据,确保数据安全性。

在 MySQL 中,使用 WHERE 子句可以对查询结果进行条件过滤,只返回满足指定条件的记录。这是 SELECT、UPDATE 和 DELETE 语句中非常关键的一部分。
基本语法
在 SELECT 查询中使用 WHERE 的基本结构如下:
SELECT 列名 FROM 表名 WHERE 条件;
例如,从名为 users 的表中查找年龄大于 25 的用户:
SELECT * FROM users WHERE age > 25;
常用比较操作符
WHERE 支持多种比较操作来构建条件:
- =:等于
- <> 或 !=:不等于
- <:小于
- >:大于
- <=:小于等于
- >=:大于等于
- IN:匹配列表中的任意一个值
- BETWEEN:在某个范围内(包含边界)
- LIKE:模糊匹配(支持 % 和 _ 通配符)
- IS NULL:判断是否为空值
示例:
-- 查找名字为 'Alice' 的用户 SELECT * FROM users WHERE name = 'Alice'; <p>-- 查找城市在 'Beijing' 或 'Shanghai' 的用户 SELECT * FROM users WHERE city IN ('Beijing', 'Shanghai');</p><p>-- 查找年龄在 18 到 30 之间的用户 SELECT * FROM users WHERE age BETWEEN 18 AND 30;</p><p>-- 模糊查找姓 'Li' 的用户 SELECT * FROM users WHERE name LIKE 'Li%';</p>
组合多个条件
使用 AND、OR 和 NOT 可以组合多个条件,实现更复杂的过滤逻辑。
示例:
-- 年龄大于 20 且所在城市是 Beijing SELECT * FROM users WHERE age > 20 AND city = 'Beijing'; <p>-- 名字是 Alice 或年龄小于 18 SELECT * FROM users WHERE name = 'Alice' OR age < 18;</p><p>-- 城市不是 Shanghai SELECT * FROM users WHERE NOT city = 'Shanghai';</p>
在 UPDATE 和 DELETE 中使用 WHERE
在修改或删除数据时,WHERE 同样重要,避免影响整个表。
更新某条记录:
UPDATE users SET age = 26 WHERE name = 'Alice';
删除特定记录:
DELETE FROM users WHERE id = 100;
注意:执行 UPDATE 或 DELETE 时若省略 WHERE,将作用于所有行,可能导致数据丢失。
基本上就这些。合理使用 WHERE 能精准控制你要操作的数据。


