关于 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 小时前
python中的深浅拷贝和上下文管理器
java·服务器·前端
皙然11 小时前
深入理解 Java HashMap:从底层原理、源码设计到面试考点全解析
java·开发语言·面试
Insist75311 小时前
案例二---集群修改物理IP和VIP
运维·网络·数据库
只能是遇见11 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
元Y亨H11 小时前
RuoYi-Cloud-Vue 架构全解析:微服务+前后端分离
java·微服务
子超兄11 小时前
ThreadLocal相关问题
java
知识分享小能手11 小时前
PostgreSQL 入门学习教程,从入门到精通,PostgreSQL 16 内部结构深度解析 —语法、实现与实战案例(20)
数据库·学习·postgresql
啊唯不困11 小时前
AI智能应用开发(Java)起点-终点 -1、java的前世今生andJava环境配置、jdk下载,以及Idea下载和基本应用
java·开发语言·intellij-idea
_muffinman11 小时前
Java学习笔记-第2章 运算和语句
java·笔记·学习
荒夜长歌11 小时前
传统java行业跳槽面试汇总(后续会更新)
java·面试·跳槽