WHERE
子句结合多个条件。,“sql,SELECT FROM table_name,WHERE condition1 AND condition2 OR condition3;,
“,确保使用逻辑运算符(如 AND、OR)正确组合条件,以实现所需的查询结果数据库查询中,WHERE
子句用于筛选满足特定条件的数据,当需要同时应用多个条件时,可以通过逻辑运算符(如 AND
、OR
)或括号来组合这些条件,以下是详细的多条件查询语句的写法及示例:
使用 AND 运算符
AND
运算符要求所有条件同时满足,查询年龄大于 25 岁且城市为 “北京” 的用户:
SELECT FROM users WHERE age > 25 AND city = '北京';
条件1 | 条件2 | 结果 |
---|---|---|
age > 25 |
city = '北京' |
返回同时满足两个条件的记录 |
使用 OR 运算符
OR
运算符只需满足任意一个条件即可,查询年龄小于 20 岁或城市为 “上海” 的用户:
SELECT FROM users WHERE age < 20 OR city = '上海';
条件1 | 条件2 | 结果 |
---|---|---|
age < 20 |
city = '上海' |
返回满足任一条件的记录 |
混合使用 AND 和 OR
当需要同时包含多种逻辑时,可以通过括号明确优先级,查询年龄在 20 到 30 岁之间且城市为 “广州” 或 “深圳” 的用户:
SELECT FROM users WHERE (age >= 20 AND age <= 30) AND (city = '广州' OR city = '深圳');
条件组1 | 条件组2 | 结果 |
---|---|---|
age >= 20 |
city = '广州' |
返回满足所有条件的记录 |
age <= 30 |
city = '深圳' |
使用 IN 运算符
IN
用于匹配多个值中的一个,查询城市为 “北京”、”上海” 或 “广州” 的用户:
SELECT FROM users WHERE city IN ('北京', '上海', '广州');
条件 | 结果 |
---|---|
city IN ('北京') |
返回城市为北京、上海或广州的记录 |
使用 LIKE 进行模糊查询
LIKE
结合通配符 或 _
实现模糊匹配,查询姓名以 “张” 开头的用户:
SELECT FROM users WHERE name LIKE '张%';
条件 | 结果 |
---|---|
name LIKE '张%' |
返回姓名以“张”开头的记录 |
使用 BETWEEN 和 NOT BETWEEN
BETWEEN
用于范围查询,查询年龄在 18 到 25 岁之间的用户:
SELECT FROM users WHERE age BETWEEN 18 AND 25;
条件 | 结果 |
---|---|
age BETWEEN 18 AND 25 |
返回年龄在18到25岁之间的记录 |
组合多种运算符
查询年龄大于 30 岁且城市为 “北京”,或者年龄小于 20 岁的用户:
SELECT FROM users WHERE (age > 30 AND city = '北京') OR age < 20;
条件组1 | 条件组2 | 结果 |
---|---|---|
age > 30 |
age < 20 |
返回满足任一条件的记录 |
city = '北京' |
注意事项
- 引号使用:字符串值需用单引号(’)包裹,数值无需引号。
- 优先级:
AND
优先级高于OR
,建议用括号明确逻辑。 - 性能优化:避免在条件中对字段使用函数(如
UPPER(name)
),这可能导致索引失效。
FAQs
问题1:如何查询工资在 5000 到 10000 之间且部门为“技术部”的员工?
解答:使用 BETWEEN
和 AND
组合条件:
SELECT FROM employees WHERE salary BETWEEN 5000 AND 10000 AND department = '技术部';
问题2:如何查询姓名为“李四”或“王五”且状态为“活跃”的用户?
解答:结合 OR
和 AND
,并用括号分组:
SELECT FROM users WHERE (name = '李四' OR name = '王五') AND status =
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/60750.html