mybatis-plus去重查询 表达式
时间: 2023-08-13 22:02:14 浏览: 85
在 MyBatis-Plus 中进行去重查询,可以使用 QueryWrapper 的 distinct 方法来实现。distinct 方法可以用于设置查询结果是否去重。
以下是一个示例代码:
```java
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.select("column1", "column2").distinct(true).eq("column3", "value");
List<Entity> resultList = entityMapper.selectList(queryWrapper);
```
在上述代码中,通过 select 方法指定需要查询的字段,然后通过 distinct 方法设置去重。最后,通过 eq 方法设置其他查询条件。调用 selectList 方法执行查询并返回结果列表。
请根据你的实际需求修改示例代码中的字段和条件。
相关问题
mybatis-plus怎么分页去重查询
在 Mybatis-Plus 中,可以通过使用 Page 类来实现分页查询,并且可以使用 Mybatis-Plus 提供的 wrapper 来进行查询条件的封装。如果要实现分页去重查询,可以使用 wrapper 的 distinct 方法来实现去重,同时在 Page 对象中设置 isSearchCount 属性为 false,避免进行总数查询。
具体的代码示例如下:
```java
// 创建分页对象
Page<User> page = new Page<>(1, 10);
// 创建查询条件的 wrapper
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("status", 1)
.groupBy("name")
.select("id, name");
// 去重查询
wrapper.distinct(true);
// 执行分页查询
page.setSearchCount(false); // 关闭总数查询
IPage<User> userPage = userService.page(page, wrapper);
List<User> userList = userPage.getRecords();
```
以上代码中,首先创建了一个 Page 对象用于分页查询,然后创建了一个 QueryWrapper 对象用于查询条件封装,其中使用了 groupBy 和 select 方法来实现分组查询,并使用 distinct 方法来实现去重查询。最后通过调用 page 方法来进行分页查询,同时设置了 isSearchCount 属性为 false,避免进行总数查询。
mybatis-plus lambda表达式
MyBatis-Plus是MyBatis的增强工具,在MyBatis的基础上增加了许多实用的功能,其中包括Lambda表达式查询。Lambda表达式是Java 8中引入的一种新的语法,可以简化代码,使代码更加易读。在MyBatis-Plus中,我们可以使用Lambda表达式来构建查询条件,从而避免手写SQL语句。
使用Lambda表达式查询需要先引入MyBatis-Plus的依赖,然后在实体类中使用@TableLogic注解标注逻辑删除字段,接着就可以使用LambdaQueryWrapper或LambdaUpdateWrapper来构建查询条件。LambdaQueryWrapper用于查询,LambdaUpdateWrapper用于更新。
Lambda表达式查询的语法类似于SQL语句,例如:
```
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(User::getName, "张三").or().eq(User::getName, "李四");
List<User> userList = userMapper.selectList(wrapper);
```
这段代码的意思是查询名字为“张三”或“李四”的用户列表。
除了eq方法,LambdaQueryWrapper还提供了很多其他的查询方法,例如gt、lt、ge、le、like等,可以根据需要选择使用。