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

相关推荐
page_qiu14 小时前
高并发&大数据量&毫秒级响应系统设计方案
java·前端·数据库·高并发·高响应
运气好好的14 小时前
如何处理死锁异常_ORA-00060捕获与重试机制设计
jvm·数据库·python
Promise微笑14 小时前
开关柜局放国产替代浪潮下:开关柜局放监测技术与实践深度解析
网络·数据库·人工智能
Filwaod14 小时前
Java面试现场:从Redis缓存到分布式事务,水货程序员李四的‘表演‘
java·jvm·spring boot·redis·mysql·面试·多线程
2401_8676239814 小时前
解决Navicat多图纸模型工作区协同报错怎么办_外键关联与语法解析
jvm·数据库·python
sinat_3834373614 小时前
如何为表名加上图标前缀_根据表前缀自动匹配图标
jvm·数据库·python
SelectDB14 小时前
AI Agent 场景下,万级 JSON 字段的性能挑战与优化实践
数据库·人工智能·数据分析
毋语天14 小时前
从零开始:Docker 部署 Milvus 向量数据库并接入 Attu 与 pymilvus 的全流程指南
数据库·milvus
wang3zc14 小时前
如何在 Go 中为权威 DNS 服务器实现持久化域名记录存储
jvm·数据库·python
duke86926721415 小时前
如何在Bootstrap中实现响应式的统计数据卡片
jvm·数据库·python