LambdaQueryWrapper 区分大小写查询
时间: 2023-10-12 19:10:18 浏览: 397
LambdaQueryWrapper 在查询时默认是不区分大小写的,也就是说,不论你输入的是小写还是大写,都会被当作同一个词来进行查询。如果你需要区分大小写查询,可以使用 `likeBinary()` 方法,该方法会将查询语句转换为二进制比较,从而实现大小写的区分。例如:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.likeBinary(User::getName, "Tom");
```
这样就会查询出名字为 "Tom" 的用户,而不会查询出名字为 "tom" 或 "TOM" 的用户。需要注意的是,`likeBinary()` 方法只对字符串类型的字段生效。
相关问题
LambdaQueryWrapper 忽略大小写查询
LambdaQueryWrapper 可以通过 `eq()` 方法来实现忽略大小写查询,具体实现方式如下:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "john").or().eq(User::getEmail, "JOHN@EXAMPLE.COM").ignoreCase();
List<User> userList = userMapper.selectList(wrapper);
```
在上述代码中,`ignoreCase()` 方法可以忽略大小写,将 `getName()` 和 `getEmail()` 的查询条件都转化为小写,然后进行查询。这样就可以实现忽略大小写查询了。
怎么让LambdaQueryWrapper不区分大小写
您可以调用LambdaQueryWrapper类的lambda方法,使用like、eq等方法时,在字符串条件参数前加上“no”前缀,即可实现不区分大小写的查询,示例代码如下:
```
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>()
.like(!StringUtils.isEmpty(keyword), User::getName, "no" + keyword);
List<User> userList = userService.list(wrapper);
```
阅读全文