美文网首页
实习笔记 | 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