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

相关推荐
许彰午4 小时前
# 一个Java老鸟的TensorFlow入门——从计算图到GradientTape
java·tensorflow·neo4j
itzixiao4 小时前
L1-055 谁是赢家(10 分)[java][python]
java·python·算法
IT利刃出鞘4 小时前
Java反射--PropertyDescriptor的使用
java·开发语言
2301_814809864 小时前
如何配置Oracle UTL_FILE目录_CREATE DIRECTORY语法与权限分配.txt
jvm·数据库·python
其实防守也摸鱼4 小时前
面试常问问题总结--渗透测试工程师方向
网络·sql·面试·职场和发展·xss·工具·owasp
m0_734949794 小时前
golang如何使用expvar暴露运行时指标_golang expvar运行时指标暴露步骤
jvm·数据库·python
所愿ღ4 小时前
SSM框架-Spring1
java·开发语言·笔记·spring
qq_413847404 小时前
开发者工具怎么看HTML_Elements面板使用指南【操作】
jvm·数据库·python
qq_372906934 小时前
mysql如何设置密码过期策略_mysql default_password_lifetime
jvm·数据库·python
invicinble4 小时前
对于泛型的设计思路
java