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

相关推荐
2301_777599371 分钟前
如何优化宝塔面板的服务器内存使用_调整MySQL内存占用
jvm·数据库·python
gushinghsjj1 分钟前
数据管理工具怎么选?数据管理工具应具备什么?
数据库
indexsunny3 分钟前
互联网大厂Java面试实战:Spring Boot微服务与Kafka消息队列深度解析
java·spring boot·微服务·面试·kafka·消息队列·电商
瀚高PG实验室10 分钟前
PostgreSQL 优化器统计信息可能会在视图、分区或子表中暴露采样数据HGVE-2025-E006
数据库·postgresql·瀚高数据库
NoSi EFUL12 分钟前
学生成绩管理系统(MySQL)
android·数据库·mysql
Yeats_Liao12 分钟前
Trae 配置 MySQL MCP 指南
数据库·mysql
java干货13 分钟前
Redis 分布式限流的四大算法与终极形态
数据库·redis·分布式
Polar__Star13 分钟前
SQL如何高效导出大规模的分组汇总数据_利用分页与索引
jvm·数据库·python
2201_7610405914 分钟前
HTML怎么显示复杂图表摘要_HTML数据结论文字描述区【详解】
jvm·数据库·python
m0_7467523014 分钟前
HTML怎么标注回收估价规则_HTML估价逻辑说明折叠区【指南】
jvm·数据库·python