在MySQL中,WHERE
子句是用于在 SELECT
、UPDATE
、DELETE
等操作中设置过滤条件的重要组成部分,它帮助我们在查询或修改数据时筛选出满足特定条件的记录。以下是 WHERE
子句的基本用法及其条件判断:
基本语法:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
条件判断:
- 比较运算符:
=
等于<
小于>
大于<=
小于等于>=
大于等于<>
或!=
不等于BETWEEN value1 AND value2
在某个范围之间IN (value1, value2, ...)
在一组值中IS NULL
或IS NOT NULL
判断是否为空值
示例:
-- 查询年龄大于20岁的用户
SELECT * FROM users WHERE age > 20;
-- 查询id在1至10之间的用户
SELECT * FROM users WHERE id BETWEEN 1 AND 10;
-- 查询姓名为'张三'或'李四'的用户
SELECT * FROM users WHERE name IN ('张三', '李四');
-- 查询未删除(is_deleted标记为0)的用户
SELECT * FROM users WHERE is_deleted = 0;
-- 查询邮箱不为空的用户
SELECT * FROM users WHERE email IS NOT NULL;
逻辑运算符:
AND
:多个条件同时满足OR
:满足任意一个条件即可NOT
:否定后面的条件
复合条件示例:
-- 查询年龄大于20岁并且性别为'男'的用户
SELECT * FROM users WHERE age > 20 AND gender = '男';
-- 查询年龄小于30岁或邮箱地址以'somecompany.com'结尾的用户
SELECT * FROM users WHERE age < 30 OR email LIKE '%somecompany.com';
-- 查询年龄不在18至25岁之间的用户
SELECT * FROM users WHERE age NOT BETWEEN 18 AND 25;
此外,还可以结合其他条件判断,比如模糊匹配:
-- 查询名字中包含'王'字的用户
SELECT * FROM users WHERE name LIKE '%王%';
以及使用嵌套查询、子查询和关联查询等复杂条件。总的来说,WHERE
子句极其灵活,可以用来定义各种复杂的筛选规则。