Msql使用concat函数实现关键字模糊查询

前言
不知道大家在开发中有没有这样的经历:根据条件过滤列表数据项。

这种的条件少的还好,比如根据姓名或者性别过滤,这样不仅页面会稍微美观一些,对于sql的压力以及后端的代码量也是会轻松不少的。

但是条件多了,条件1,条件2,条件3…条件100,这时候后端的接口就会一个一个的if判断,不断的追加条件(做为后端开发深有体会,头大)

我给大家简单画个图,大家就明白了:
在这里插入图片描述
那么有没有一种方式,可以又美化页面,不增加使用者的视觉疲劳,又能做到只输入一个关键字,就能将全部的数据按照输入的关键字进行过滤,从而只留下符合关键字信息的呢。

当然有,今天在做自己项目的时候就遇到了这个问题,正好借着这个机会分享我的思路以及相关的代码。

示例:

select a,b,c from table concat(a,b,c) like concat('%',x,'%')

实战:
query:条件集合
content: 是封装了 姓名/电话…

    <select id="wnpersonInfoesPage" resultType="com.dwkj.yunxinbang.adresslist.represenation.WnpersonInfoPageResponse">
        SELECT *
        FROM wnpersonalinfo_old as info
        <where>
            1 = 1
            <if test="query.content != null and query.content != ''">
                and concat(info.name,info.phone1,info.advantage,info.company) like concat('%', #{query.content} ,'%')
            </if>
            AND info.del_flag = "0000-00-00 00:00:00"
            AND info.mp_id = #{query.mpId}
        </where>
    </select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值