网络宝典
第二套高阶模板 · 更大气的阅读体验

SQL查询多个条件怎么写?一看就懂的实用技巧

发布时间:2025-12-10 22:05:25 阅读:172 次

在日常工作中,经常需要从数据库里找特定的数据。比如,你想查出公司里“销售部”且“工资大于8000”的员工,这时候就得用到SQL查询的多个条件

用 WHERE 和 AND 连接条件

最常见的情况是同时满足多个条件。这时可以用 AND 把它们连起来。比如这张员工表:

SELECT * FROM employees 
WHERE department = '销售部' 
AND salary > 8000;

这条语句的意思是:只选出部门是“销售部”并且工资超过8000的人。两个条件必须同时成立。

满足其中一个条件就行?用 OR

有时候我们想找“销售部”或者“技术部”的员工,不管哪个都行。这时候就该上 OR 了。

SELECT * FROM employees 
WHERE department = '销售部' 
OR department = '技术部';

只要符合任意一个条件,数据就会被查出来。

组合使用更灵活

实际需求往往更复杂。比如你要找“销售部工资大于8000”的人,或者“技术部工资大于10000”的人。可以这样写:

SELECT * FROM employees 
WHERE (department = '销售部' AND salary > 8000) 
OR (department = '技术部' AND salary > 10000);

注意这里的括号。它能明确告诉数据库先算哪一部分,避免逻辑混乱,就像数学里的优先级一样。

排除某些数据?试试 NOT

如果你想查“不是人事部”的员工,可以用 NOT

SELECT * FROM employees 
WHERE NOT department = '人事部';

或者更直观地写成:

SELECT * FROM employees 
WHERE department != '人事部';

两种写法效果一样,看哪种顺手用哪个。

结合 IN 让条件更简洁

如果要查多个部门的人,比如“销售部、技术部、财务部”,用一堆 OR 就太啰嗦了。这时 IN 更省事。

SELECT * FROM employees 
WHERE department IN ('销售部', '技术部', '财务部');

想反着来?加个 NOT IN 就行。

实际场景小例子

假设你在运营一个电商网站,想找出“2024年6月之后下单,且订单金额大于500,状态不是已取消”的订单。

SELECT * FROM orders 
WHERE order_date > '2024-06-01' 
AND amount > 500 
AND status != '已取消';

这样的查询能帮你快速定位高价值的有效订单,做分析时特别有用。

多条件查询是SQL中最常用的功能之一,掌握好 ANDORNOTIN 的搭配,再注意括号的使用,基本就能应付大多数业务需求了。