springboot+mybatis的通过数组模糊查询

本文探讨了一种不常见的SQL模糊查询方法,即使用foreach遍历字符数组进行查询。通过前端传入的字符串,将其拆分成字符数组,并在SQL的where子句中利用concat和like操作实现模糊匹配。这种方法虽然不是标准用法,但实验结果显示可以成功执行。需要注意的是,遍历元素间必须用百分号('%')连接,并在查询末尾加上orderby语句以避免错误。此技术对于处理部分关键词查询提供了新的思路。
摘要由CSDN通过智能技术生成

通过一些不连贯的关键字在数据库中查询相关数据.

例:

 这个里面,我就通过"数的拆用",就查询出"整数的拆分及应用"

我的想法是:将前端传过来的字符串拆分成char类型的数组,然后在sql语句的模糊查询中,去遍历这个数组.

service中的方法:

@Transactional
    @Override
    public List<Blog> queryByTitle(String title) {
        char []titleChar = title.toCharArray();
        return blogMapper.queryByTitle(titleChar);
    }

mapper.xm:

<select id="queryByTitle"   resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from t_blog
    where title like concat(concat('%' ,
    <foreach item="item" index="index" collection="title" open="" separator="'%'" close="">
      #{item}
    </foreach>
    ),'%')
    order by id desc
  </select>

在sql模糊查询语句中,我使用foreach来遍历,数组.本来foreach是配合in使用的,但我抱着尝试的心态,居然成功了.关于foreach自己查询,我这就不多说了.

重点 :

        1.遍历对象之间的参数一定是'%',别忘了单引号.

         2.查询语句最后要加order by语句,否则运行的时候,控制台会爆红,但能正常查出数据.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值