根据数据库表字段进行字符串分割筛选过滤数据

需求描述:

	需要根据数据库表字段进行字符串分割筛选过滤数据

数据库字段结构

数据库字段

Xml 文件

<select id="selectCelebrationList" resultMap="BaseResultMap" parameterType="map">
        SELECT
        DISTINCT a.*
        FROM
        mst_celebration a
        left join   tran_company_celebration tcc on tcc.celebration_id = a.id
        <trim prefix="WHERE" prefixOverrides="AND|OR">
            <if test="keyWord != null and keyWord !=''">
                and a.name like concat(concat('%',#{keyWord}),'%')
            </if>
            <if test="colorId != null or styleId != null">
                and(
                <trim prefixOverrides="AND|OR">
                    <if test="colorId != null ">
                        (
                        <trim prefixOverrides="AND|OR">
                            <foreach collection="colorId" item="id">
                                or (locate(concat(#{id},','),a.color_ids) > 0 )
                            </foreach>
                        </trim>
                        )
                    </if>
                    <if test="styleId != null ">
                        and
                        (
                        <trim prefixOverrides="AND|OR">
                            <foreach collection="styleId" item="id">
                                or (locate(concat(#{id},','),a.style_ids) > 0 )
                            </foreach>
                        </trim>
                        )
                    </if>
                </trim>
                )
            </if>
            <if test="companyId != null and companyId !=''">
                and a.company_id = #{companyId}
            </if>
        </trim>
        order by a.update_time desc
    

SQL生成效果:

select a.* from mst_planning_scheme_templet a WHERE ( ( (locate(concat(?,’,’),a.color_ids) > 0 ) or (locate(concat(?,’,’),a.color_ids) > 0 ) or (locate(concat(?,’,’),a.color_ids) > 0 ) ) and ( (locate(concat(?,’,’),a.style_ids) > 0 ) or (locate(concat(?,’,’),a.style_ids) > 0 ) or (locate(concat(?,’,’),a.style_ids) > 0 ) ) ) and a.company_id = ? order by a.update_time desc LIMIT 0,12

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值