Spring 类似或包含 JPA 的数据
Spring Data JPA Like or Containing
我正在弄乱 Spring Boot Data JPA,阅读 documentation,我感到困惑。有什么区别?
我的理解是,“Like”运算符使 SQL 没有围绕我的字符串的“%”(其中名称类似于 'String'),“Containing”运算符使 SQL 我的字符串周围有“%”(名称如“%String%”)。我错了吗?
我使用了“Like”运算符,在双方都需要“%”的情况下他工作得很好,所以我真的很困惑!
您可以用 like
模拟 containing
是正确的。
区别是:
- 使用 like 时,您必须自己用通配符将搜索字符串括起来。
- 你不仅可以在开头或结尾使用通配符,还可以在中间使用通配符,中间可以使用多个通配符,也可以使用不同的通配符,例如
_
匹配单个字符。
- 最后一个微妙的区别是
containing
将转义搜索参数中包含的通配符,而后者不会。所以在搜索 abc%def
时,两者的行为不同
| containing | like (with additional `%` around the searchstring)
-------------------------------------------------------------------------------------
123abc%def456 | matches | matches
123abcXYZdef456 | does not match | matches
我正在弄乱 Spring Boot Data JPA,阅读 documentation,我感到困惑。有什么区别?
我的理解是,“Like”运算符使 SQL 没有围绕我的字符串的“%”(其中名称类似于 'String'),“Containing”运算符使 SQL 我的字符串周围有“%”(名称如“%String%”)。我错了吗?
我使用了“Like”运算符,在双方都需要“%”的情况下他工作得很好,所以我真的很困惑!
您可以用 like
模拟 containing
是正确的。
区别是:
- 使用 like 时,您必须自己用通配符将搜索字符串括起来。
- 你不仅可以在开头或结尾使用通配符,还可以在中间使用通配符,中间可以使用多个通配符,也可以使用不同的通配符,例如
_
匹配单个字符。 - 最后一个微妙的区别是
containing
将转义搜索参数中包含的通配符,而后者不会。所以在搜索abc%def
时,两者的行为不同| containing | like (with additional `%` around the searchstring) ------------------------------------------------------------------------------------- 123abc%def456 | matches | matches 123abcXYZdef456 | does not match | matches