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

相关推荐
小手cool10 分钟前
使用递归对数组进行反转操作
java·数据结构·算法
MetaLite24 分钟前
SpringBoot分页接口怎么设计-pageSize不设上限会发生什么
java·spring boot·后端
晚安code31 分钟前
LangChain4j AiService 实战:会话记忆与结构化输出
java·langchain
Baron X37 分钟前
Redis 7.0.9 完整部署指南
数据库·redis
晚安code37 分钟前
LangChain4j 实战:RAG、工具调用、护轨与 SSE 流式输出
java·langchain
weixin_4407305040 分钟前
数据库缓存、索引、缓存命中率的理解
数据库·缓存
郑州光合科技余经理1 小时前
本地生活平台搭建:统一订单表与多后台切换怎么拆
java·开发语言·前端·系统架构·uni-app·php·ai编程
DeepAgent1 小时前
AI Agent 工程实践(34):企业 AI Agent 架构
数据库·人工智能·agent
杰哥哥不是个好叔叔2 小时前
【Spring AI】Spring AI 2.0.1 新特性袭来
java·人工智能·spring
莫陌尛.2 小时前
Java核心知识点:直接内存、CPU密集型线程池、并行流对比文档
java·开发语言