*mapper.xml 中多重foreach 拼接查询条件

首先你要了解xml 能用那些标签元素
一般在头部信息中声明

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

http://mybatis.org/dtd/mybatis-3-mapper.dtd 摘要例子

<!ELEMENT insert (#PCDATA | selectKey | include | trim | where | set | foreach | choose | if | bind)*>

意思时 在xml insert 标签中 可以使用元素selectKey | include | trim | where | set | foreach | choose | if | bind

 <choose >
            <when test="selectname != null">
                <foreach collection="selectName" item="itemName"  index="idxName"  close=") pa  LEFT JOIN  product_info pi on pa.attribute_id = pi.id " open="(" separator="union">

                    SELECT attribute_id  FROM  product_attribute pa WHERE  pa.attribute_name = ${itemName}
                    <foreach collection="selectValue" item="itemValue"  index="idxValue"  close=")" open="and (" separator="and">
                          <if test="idxName == idxValue">
                              attribute_value like  concat('%', #{itemValue},'%')
                          </if>
                    </foreach>
                </foreach>
            </when>
            <otherwise>
                product_info pi
            </otherwise>
        </choose>

foreach 中
collection —>集合
item -->当前元素
index -->下标
open --> 前缀
close --》后缀
separator --》 拼接值

choose中
when otherwise 想当如 if else

when 中
test 判断条件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值