关于 mapper.xml 中 sql使用 in 执行无效的原因

1.SQL

xml 复制代码
	<select id="getList" resultType="com.xxx.xxx.front.response.ConvertList">
        select
        	*
        from
        	store_product
        where
        	1=1
        <if test="cateIdList != null">
            and cate_id in
            <foreach collection="cateIdList" item="cateIdList" index="index" open="(" separator="," close=")">
                #{cateIdList}
            </foreach>
        </if>
    </select>

2.最终执行的sql拼接如下

and cate_id in ('753','753')

3.解决方案

in ('753','753') 这样的sql在数据库执行之后是查不到任何数据的,即便cate_id本身的确是字符串也是一样。in()不能比较字符,如果要比较字符还是得使用like或者or。所以只能将入参改成 Integer 最终拼接为 in (753,753) 才能查出数据

相关推荐
李少兄11 分钟前
MySQL 数据库表数量统计
数据库·mysql·oracle
tgethe1 小时前
java并发——1
java·开发语言·面试
coder_zh_1 小时前
Java基础-学习-面试-校招-要点突击检查
java
郑州光合科技余经理1 小时前
海外O2O系统源码剖析:多语言、多货币架构设计与二次开发实践
java·开发语言·前端·小程序·系统架构·uni-app·php
某个默默无闻奋斗的人4 小时前
高性能 MySQL 进阶:索引核心原理、失效场景与底层优化全解
数据库·mysql
极限实验室6 小时前
INFINI Labs 产品更新 - Easysearch 2.1.0 新增高性能 Rules 规则引擎插件,数据探索 Discover 等
数据库·产品
工程师老罗7 小时前
Image(图像)的用法
java·前端·javascript
leo_messi947 小时前
2026版商城项目(一)
java·elasticsearch·k8s·springcloud
美味蛋炒饭.8 小时前
Tomcat 超详细入门教程(安装 + 目录 + 配置 + 部署 + 排错)
java·tomcat
鹿角片ljp8 小时前
苍穹外卖 day05:店铺营业状态设置与Redis入门实战
数据库·redis·缓存