mybatis使用foreach的 separator="or" 失效问题

今天处理一个需求,选中北京三城一副一区,要查到"海淀区,怀柔区,昌平区,大兴区,通州区"三个区的数据

思路:由于地址并没有分区,只是一个字符串,所以把 "海淀区,怀柔区,昌平区,大兴区,通州区" 拼接为多个like

传参:"海淀区,怀柔区,昌平区,大兴区,通州区"

 

碰到问题:xml中foreach没有循环,separator="or"也失效

但是,问题解决了啊^_^,所以才来写文章的啊O(∩_∩)O哈哈~

 

解决过程:

处理为List<String>

失败:

select COUNT(b.`id`) num,b.`hymc` hymc from yjjc_zcxx b WHERE ( b.zcdz like '%海淀区,怀柔区,昌平区,大兴区,通州区%' ) group by b.hymc

 

处理为String[]

成功:

select COUNT(b.`id`) num,b.`hymc` hymc from yjjc_zcxx b WHERE ( b.zcdz like '%海淀区%' or b.zcdz like '%怀柔区%' or b.zcdz like '%昌平区%' or b.zcdz like '%大兴区%' or b.zcdz like '%通州区%' ) group by b.hymc

 

SQL:

<select id="getGkLxjgBar" resultType="org.jshy.modules.demo.yjjc.entity.YjjcZcxxQygk">
        select COUNT(b.`id`) num,b.`hymc` hymc
        from yjjc_zcxx b
        
        <where>
            <if test="zzjgdm != null ">
                and b.zzjgdm=#{zzjgdm}
            </if>
            <if test="zcdzList != null ">
                    <foreach collection="zcdzList" item="primaryKey" index="index" open="(" close=")" separator="or"> 
                         b.zcdz like <![CDATA['%${primaryKey}%']]>
                    </foreach>
            </if>
            
        </where>
        group by b.hymc
            
    </select>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值