SQL 中 IN 和 AND 可以搭配使用么?

完全可以 ,而且是非常常用的组合!IN 是范围匹配条件,AND 是多条件同时满足的逻辑符,二者搭配能精准筛选出符合多个规则的数据。

一、最常用场景:WHERE 子句中组合

在 WHERE 筛选条件里,用 AND 把 IN 条件和其他条件拼接,所有条件必须同时成立。

示例 1:基础搭配

有一张用户表 users,筛选:

  • 年龄在 20、25、30 岁(IN)
  • 并且 性别为女(AND)
  • 并且 城市是北京(AND)

sql

复制代码
SELECT * 
FROM users
WHERE 
  age IN (20, 25, 30)  -- IN条件
  AND gender = '女'    -- AND 拼接其他条件
  AND city = '北京';   -- AND 拼接其他条件

示例 2:多个 IN 条件用 AND 连接

筛选:

  • 部门是 技术部 / 产品部(IN)
  • 并且 职位是 工程师 / 设计师(IN)

sql

复制代码
SELECT * 
FROM employees
WHERE 
  department IN ('技术部', '产品部')
  AND position IN ('工程师', '设计师');

二、进阶场景:子查询中使用

IN 后面跟子查询时,也能用 AND 组合条件:

sql

复制代码
SELECT * 
FROM orders
WHERE 
  user_id IN (
    SELECT id 
    FROM users 
    WHERE age >= 18  -- 子查询内部的AND条件
      AND status = '正常'
  )
  AND order_status = '已支付';  -- 主查询的AND条件

三、核心注意事项

  1. 逻辑优先级 :IN 的优先级高于 AND,无需额外加括号(复杂逻辑建议加括号提升可读性)
  2. 语法规则 :AND 必须连接完整的条件表达式 ,不能写错误语法:❌ 错误:age IN (20,25) AND (30)✅ 正确:age IN (20,25,30)

总结

  1. IN + AND 是 SQL合法且常用的组合;
  2. 用途:同时满足「范围匹配」+「其他固定条件」;
  3. 核心:所有通过 AND 连接的条件,必须全部成立才会返回数据。
相关推荐
摇滚侠5 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
川石课堂软件测试5 小时前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http
2501_937767166 小时前
自建 SQL 数据库定时备份踩坑复盘与落地思路
数据库·sql
silvamux_7 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
I Am a robert girl9 小时前
从 GameHorizon 拆解多时间尺度游戏评测:数据管线、离线基准与在线回放的三层设计
数据库·游戏·多时间尺度·数据管线·游戏评测·离线基准·在线回放
躺柒9 小时前
读数据安全架构设计与实践17安全架构案例(下)
数据库·安全·零信任·安全架构·防火墙·无边界
SelectDB9 小时前
实时更新排错现场:导入了却查到旧数据,和 FINAL 越加越慢的两条路
大数据·数据库·数据分析
SelectDB10 小时前
拿 Planet 的账单一行行对下来,我总结出三个可自查的校验点
大数据·数据库·数据分析
SelectDB10 小时前
Apache Doris + Vane:让多模态数据进入业务分析
大数据·数据库·数据分析
pjj1985412 小时前
ClickHouse 与 Doris 数据库技术梳理:看懂分析型数据库
数据库·clickhouse