queryWrapper做去重过滤
时间: 2023-06-22 21:20:09 浏览: 814
queryWrapper是MyBatis-Plus中常用的查询条件构造器,可以方便地构造复杂的查询条件。如果你想在查询结果中去重,可以在queryWrapper中使用distinct方法来实现。例如:
```
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("gender", "male")
.select("name", "age")
.distinct(true);
List<User> userList = userService.list(queryWrapper);
```
这个例子中,我们构造了一个查询条件,查询gender为male的用户,并且只选择name和age两个字段,然后使用distinct方法进行去重。注意,distinct方法接受一个boolean类型的参数,表示是否启用去重。
相关问题
queryWrapper实现去重
可以使用QueryWrapper的select方法结合LambdaQueryWrapper的groupBy方法实现去重。示例代码如下:
```
QueryWrapper<CustomerBodyMetricsEntity> wrapper = new QueryWrapper<>();
wrapper.select("DISTINCT version")
.lambda()
.eq(CustomerBodyMetricsEntity::getCustomerId, customerId)
.ge(CustomerBodyMetricsEntity::getVersion, DateTimeUtil.dateTimeToTimestamp(firstDay))
.le(CustomerBodyMetricsEntity::getVersion, DateTimeUtil.dateTimeToTimestamp(lastDay))
.in(CustomerBodyMetricsEntity::getMetric, list)
.ne(CustomerBodyMetricsEntity::getLabel, 20)
.groupBy(CustomerBodyMetricsEntity::getVersion);
List<CustomerBodyMetricsEntity> list = this.list(wrapper);
```
以上代码中,select方法中传入"DISTINCT version"表示只查询version字段并去重,groupBy方法中传入CustomerBodyMetricsEntity::getVersion表示按照version字段进行分组。
QueryWrapper 去重
QueryWrapper是MyBatis-Plus中的一个条件构造器,用于构建SQL查询条件。要实现QueryWrapper的去重功能,可以使用distinct方法。
下面是一个示例代码,演示了如何使用QueryWrapper进行去重查询:
```java
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
public class Demo {
public static void main(String[] args) {
UserMapper userMapper = new UserMapper();
QueryWrapper<User> queryWrapper = Wrappers.query();
queryWrapper.select("name").distinct(true);
List<User> userList = userMapper.selectList(queryWrapper);
for (User user : userList) {
System.out.println(user.getName());
}
}
}
```
在上面的代码中,我们创建了一个QueryWrapper对象,并调用select方法指定要查询的字段,然后调用distinct方法设置去重。最后,通过selectList方法执行查询,并遍历结果集打印出去重后的name字段。
阅读全文