mysql的in多个条件用法

参考:https://geek-docs.com/mysql/mysql-ask-answer/1345_mysql_mysql_in_clauses_trying_to_match_in_list_of_tuples.html

批量单个条件时,直接用in查询就行,一样会走索引
批量多个条件时,也可以用in ,mybatis写法示范如下
在这里插入图片描述
在这里插入图片描述

/**
 * 查询用户池信息
 * @param list 请求参数
 * @return 用户池信息列表
 */
List<UserPool> batchGet(@Param("list") List<UserPoolSaveRequestDto> list);

xml写法

<select id="batchGet"  resultMap="BaseResultMap">
    select <include refid="Base_Column_List" />
    from user_pool
    where deleted = 0
    and (user_code, organization_code) in
    <foreach collection="list" item="item" open="(" close=")" separator=",">
        (#{item.userCode,jdbcType=VARCHAR}, #{item.organizationCode,jdbcType=VARCHAR})
    </foreach>
</select>
### 如何在 MySQL 中使用多个条件进行 WHERE 查询 #### 使用 AND 和 OR 运算符组合条件 为了实现更复杂的查询需求,在 `WHERE` 子句中可以利用逻辑运算符来连接不同的条件表达式。最常用的两个逻辑运算符是 `AND` 和 `OR`。 - 当希望所有给定的条件都成立时,应该采用 `AND` 关键字[^2]。 - 如果只要求至少有一个条件满足即可,则应选用 `OR` 关键字[^2]。 下面是一个具体的例子展示如何运用这两个关键字: ```sql SELECT * FROM table_name WHERE column1 = value1 AND column2 = value2; ``` 此命令表示只选取那些既符合 `column1=value1` 又符合 `column2=value2` 的记录条目。 对于包含多种可能性的情况,比如想要找到某列等于特定几个值之一的所有行,可以用如下形式书写SQL语句: ```sql SELECT * FROM table_name WHERE column1 = 'valueA' OR column1 = 'valueB'; ``` 这将返回凡是 `column1='valueA'` 或者 `column1='valueB'` 的任何一条记录。 #### 利用 IN、NOT IN 实现多值匹配 除了上述方法外,还可以通过 `IN()` 函数简化具有相同字段不同取值情况下的查询操作。例如要找出某个属性可能有三个固定选项的情形下,可写成这样: ```sql SELECT * FROM table_name WHERE column1 IN ('option1', 'option2', 'option3'); ``` 同样地,如果想排除某些特定值也可以借助 `NOT IN()` 来完成: ```sql SELECT * FROM table_name WHERE column1 NOT IN ('excludedValue1', 'excludedValue2'); ``` 以上两种方式均能有效地减少冗余代码量并提高可读性。 #### 多个条件与索引优化的关系 当涉及到多列联合索引的应用场景时,需要注意的是只有当查询条件覆盖到了复合索引的第一个字段才会触发该索引的有效应用[^1]。因此设计合理的索引结构以及理解其工作原理有助于提升数据库性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值