美文网首页
实习笔记 | SpringDataJPA之@Query LIKE

实习笔记 | SpringDataJPA之@Query LIKE

作者: ProudLin | 来源:发表于2019-07-23 21:55 被阅读0次

    最近遇到了这样一个需求,给一个输入框,这个输入款呢可以输入一个店铺名或者手机号码搜索。

    若输入店铺名,则采用模糊搜索,若输入手机号码则精确搜索。

    SQL 语句不难,一个参数包含两种可能,用一个 or 连接即可

    可遇到一个骚问题,单独模糊搜索时,有内容输出,可加上 or mobile = ?1 后却没有内容了,在 Navicat 测试 SQL 语句也没啥毛病。

    看了半天额 SQL 没有头绪,毕竟没写错,于是让大佬帮忙看了一下,他说,看一下控制台的SQL语句打印。

    发现控制台 like 的「%」消失了。我看着其他的SQL语句写没什么问题,于是上网查了一下,用一个 「CONCAT」拼接即可。
    如:like CONCAT (‘%’,?1,’%‘)

    原来,对于JPA来说,like 查询是不友好的,像这种 like '%?1%' 很难查出东西的。
    所以 CONCAT函数来帮忙,用 like CONCAT(‘%’,?1,’%’) 进行拼接,核心就是 mysql 的 concat 函数,CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一。

    level up!

    相关文章

      网友评论

          本文标题:实习笔记 | SpringDataJPA之@Query LIKE

          本文链接:https://www.haomeiwen.com/subject/jxjzlctx.html