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

相关推荐
三品PLM系统12 小时前
【无标题】
数据库·制造·cadence·plm
ITxiaobing202312 小时前
如何构建IP维度的假量排查流程:以AppsFlyer Protect360判假后的实战为例
网络·数据库
怎么比啊都是大神13 小时前
关于==null、isEmpty()和StrUtil.isBlank()
java
唐青枫13 小时前
Java Neo4j 实战指南:从图模型、Cypher 到 Spring Boot 关系查询
java
观远数据13 小时前
从离线开发到实时同步:DataFlow如何支撑企业级数据治理闭环
java·windows·microsoft·excel
ywl47081208713 小时前
mysql 锁定读和非锁定读
数据库·mysql
流浪00113 小时前
MySQL数据库基础篇(三):MySQL 数据库库级操作全解:创建、字符集、管理与备份恢复实战
数据库·mysql
昌旭咨询13 小时前
2026国内知名的CS认证咨询机构有哪些?企业该如何选择?
大数据·数据库·人工智能
吴声子夜歌14 小时前
Redis 3.x——集群运维
运维·数据库·redis
钝挫力PROGRAMER14 小时前
MySQL 数据截断错误 #22001:原因分析与解决方案
数据库·mysql