关于 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) 才能查出数据

相关推荐
PingCAP6 分钟前
善战者无赫赫之功:消费金融核心系统的数据库选型与升级路径
数据库·分布式·架构
\光辉岁月/9 分钟前
3.包装类
java·开发语言·包装类
BeiGuTing_code10 分钟前
Java动态数组(一)
java·数据结构·windows
我命由我1234520 分钟前
软件工程概念 - 可插拔性
java·后端·学习·java-ee·系统架构·软件工程·学习方法
花间相见35 分钟前
【计算基础|MySQL09】索引(下):失效与设计
数据库·后端·面试
张宇Joaquin38 分钟前
Linux系统下磁盘扇区512n、512e和4kn的区别
linux·运维·数据库
用户62799471826240 分钟前
南大通用 GBase 8c 锁等待与死锁排查:从阻塞链到全局事务号
数据库
道虽迩,不行不至43 分钟前
数据库自动连库执行增量脚本-Linux
linux·数据库
GeW44 分钟前
新质生产力发展路线图来了,Linux和数据库人该怎么接
linux·数据库
木易 士心44 分钟前
Java 后端驱动远程手机自动化:ADB + Python + 内网穿透实战全解
java·后端·智能手机·自动化