sql<foreach>遇到的问题总结

测试账号 2021-01-20 12:44 909阅读 0赞

最近在工作中,使用<foreach>时遇到了两个问题
第一个问题是,向<foreach>中传一个ArrayList,里面有5条数据,其中有两条数据一样,期望能查出5条数据,但结果仅查出4条数据,刚开始以为是 查出的结果集自动去重,

后来通过查看日志发现是查询条件把重复的去掉了

请教同事得知<foreach>

是把条件用or连接起来

比如传进来一个数组{1,2,3,4,4}

语句就是

  1. select * from table where x=1 or x=2 or x=3 or x=4 or x=4

答案一目了然

还有一个问题其实和<foreach>关系也不是很大

  1. select * from table where 1=1 <if test="x!=null"> and x in<foreach item="item">#{item}</foreach></if>

表面看上去没什么问题
但是,如果传进来x是空值的话 查出来的就是全部值 但是本意是 什么都不传进来 就 不返回结果
解决方法加一个对数组长度的判读是否为空

发表评论

表情:
评论列表 (有 0 条评论,909人围观)

还没有评论,来说两句吧...

相关阅读

    相关 工作遇到问题总结

    出现 unexpected token < 这样的错误,原因是什么? 解决:首先看控制台是否报错,根据错误来寻找 如果没有报错 ,看以下两条 1>   是否在本页出现

    相关 项目中遇到问题总结

    功能描述: 1、单击输入框,弹出弹层,再点击弹层隐藏 2、单击空白区,弹层隐藏 3、单击弹层中的地区,把对应值填入到输入框中,弹层隐藏 功能实现:我设置了开关,单击输入

    相关 遇到问题总结

    在做服务机构的模块的时候。 1,用了一天的时间了解的机构服务系统。 2,花费了一天的时间,完成了编码 3,花费了一天的时间修改bug 过程中,有很多不足的地方

    相关 Java面试遇到问题总结

    一:讲一下前后端交互用的什么协议,如何保证数据的传递安全性?数据的抓包了解吗? 前言 前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能