mybaitis-plus mysql like concat 下划线_,值里有下划线,如何全匹配
时间: 2023-09-02 09:02:06 浏览: 193
在MyBatis-Plus中,如果要在MySQL中使用like和concat函数进行模糊查询,并且查询的值中包含下划线,可以通过转义下划线来实现全匹配。
在MySQL中,通配符"_"表示匹配任意单个字符,而不仅仅限于下划线。因此,如果要全匹配包含下划线的值,可以使用转义字符"\_"来表示下划线的字面意义,而不是通配符。
在MyBatis-Plus中,可以使用转义函数来实现对下划线的转义。例如,假设要查询包含下划线的name字段:
```java
String name = "abc_123";
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "%" + StringUtils.replace(name, "_", "\\_") + "%");
List<Entity> entityList = entityMapper.selectList(queryWrapper);
```
上述代码中,我们使用了StringUtils.replace()函数将查询值中的下划线替换成"\_",然后使用like函数进行模糊查询。这样能确保查询结果中name字段的值完全匹配包含下划线的值。
需要注意的是,MySQL中的转义字符是"\\",而Java中的转义字符也是"\\",所以我们在将下划线替换为"\_"时,需要使用两个反斜杠来表示一个反斜杠。这样才能正确的将"_"转义为"\_"进行全匹配查询。
阅读全文