在 MySQL 中,WHERE 条件用于筛选查询结果中满足特定条件的记录。它通常出现在 SELECT、UPDATE 和 DELETE 语句中,用来限制操作的数据范围。
基本语法结构
WHERE 子句的基本写法如下:
SELECT 列名 FROM 表名 WHERE 条件;UPDATE 表名 SET 列 = 值 WHERE 条件;
DELETE FROM 表名 WHERE 条件;
其中“条件”是一个返回真或假的表达式,MySQL 根据这个条件判断是否选中某一行。
常见的比较和逻辑操作
你可以使用多种运算符来构建 WHERE 条件:
=:等于 或 !=:不等于 >:大于 :小于 >=:大于等于 :小于等于 AND:多个条件同时成立 OR:任一条件成立即可 NOT:取反示例:
-- 查询年龄大于25的用户SELECT * FROM users WHERE age > 25;
-- 查询姓名为 'Alice' 且城市为 'Beijing' 的记录
SELECT * FROM users WHERE name = 'Alice' AND city = 'Beijing';
-- 查询不是管理员或者状态启用的用户
SELECT * FROM users WHERE NOT is_admin = 1 OR status = 'active';
使用 IN、LIKE 和 NULL 判断
除了基本比较,还可以用更灵活的方式匹配数据:
IN (值列表):判断字段是否在指定集合中 LIKE:支持通配符的模糊匹配(% 匹配任意字符,_ 匹配单个字符) IS NULL / IS NOT NULL:判断是否为空值例子:
-- 查询 id 为 1, 3, 5 的用户SELECT * FROM users WHERE id IN (1, 3, 5);
-- 模糊查找姓 "Li" 的用户
SELECT * FROM users WHERE name LIKE 'Li%';
-- 查找邮箱为空的用户
SELECT * FROM users WHERE email IS NULL;
注意点
使用 WHERE 条件时要注意以下几点:
字符串值要用单引号括起来 日期也需用单引号,并建议使用标准格式(如 '2025-04-05') 避免在 WHERE 中对字段使用函数,否则可能导致索引失效 确保字段有适当索引,尤其是经常用于查询条件的列基本上就这些。合理使用 WHERE 能让你精准控制要操作的数据,提高查询效率和准确性。
