在 MySQL 中,WHERE 子句用于过滤查询结果中满足特定条件的记录。它通常出现在 SELECT、UPDATE 和 DELETE 语句中,用来限定操作的数据范围。
基本语法
SELECT、UPDATE、DELETE 语句中使用 WHERE 的基本结构如下:
SELECT 列名 FROM 表名 WHERE 条件;UPDATE 表名 SET 列 = 值 WHERE 条件;
DELETE FROM 表名 WHERE 条件;
注意:不加 WHERE 子句会作用于所有行,执行 UPDATE 或 DELETE 时要特别小心。
常见的 WHERE 条件操作符
WHERE 支持多种比较和逻辑操作符来构建条件表达式:
=:等于(例:name = '张三') 或 !=:不等于 :小于,>:大于 、>=:小于等于、大于等于 AND:且,多个条件同时成立 OR:或,任一条件成立即可 NOT:取反 IN:匹配列表中的任意一个值(例:id IN (1,2,3)) BETWEEN ... AND ...:范围匹配(包含边界) LIKE:模糊匹配,支持 %(任意字符)和 _(单个字符) IS NULL:判断是否为空值实际使用示例
假设有一张名为 users 的表,包含 id、name、age、city 字段。
查询年龄大于 25 的用户:SELECT * FROM users WHERE age > 25; 查询城市是北京或上海的用户:
SELECT * FROM users WHERE city = '北京' OR city = '上海'; 查询姓名以“李”开头的用户:
SELECT * FROM users WHERE name LIKE '李%'; 更新 ID 为 1 的用户年龄:
UPDATE users SET age = 30 WHERE id = 1; 删除城市为空的记录:
DELETE FROM users WHERE city IS NULL;
注意事项
使用 WHERE 时要注意以下几点:
字符串值要用单引号括起来,数字不需要 避免在 WHERE 中对字段使用函数,否则可能导致索引失效 复杂条件建议用括号明确优先级,例如 (A OR B) AND C LIKE 中使用 % 开头(如 '%王')可能影响查询性能基本上就这些。掌握 WHERE 条件能让你精准操作数据,是日常开发中最常用的功能之一。
