sql<foreach>遇到的问题总结

            最近在工作中,使用<foreach>时遇到了两个问题

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

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

            请教同事得知<foreach>

            是把条件用or连接起来

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

           语句就是

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

           答案一目了然

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

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

扫描二维码关注公众号,回复: 2823806 查看本文章

          表面看上去没什么问题

          但是,如果传进来x是空值的话   查出来的就是全部值 但是本意是 什么都不传进来 就 不返回结果

          解决方法加一个对数组长度的判读是否为空

猜你喜欢

转载自blog.csdn.net/qq_33543634/article/details/81505792