mybatisplus 的list方法 根据字段去重
时间: 2023-07-07 18:09:17 浏览: 165
如果你想在 MyBatis Plus 中使用 `list` 方法进行数据去重,可以使用 `QueryWrapper` 类中的 `groupBy` 方法,指定需要去重的字段即可。
例如,假设有一个 `User` 实体类,其中有一个 `name` 字段,如果想要根据 `name` 字段去重查询所有用户,可以按照如下方式编写代码:
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("DISTINCT name");
List<User> userList = userService.list(queryWrapper);
```
这里使用了 `QueryWrapper` 的 `select` 方法,其中传入了一个字符串参数 `DISTINCT name`,表示查询结果中只保留 `name` 字段不重复的记录。注意,这里的 `name` 必须是数据库中的字段名,而不是实体类中的属性名。
另外,如果想要根据多个字段进行去重,只需要在 `select` 方法中传入多个字段名即可,例如 `SELECT DISTINCT name, age`。
相关问题
mybatisplus page根据某个字段去重
要使用MybatisPlus的page按照某个字段进行去重,可以使用group by关键字,具体操作如下:
```
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("条件字段", "条件值")
.groupBy("去重字段");
Page<T> page = new Page<>(pageNum, pageSize);
IPage<T> resultPage = this.baseMapper.selectPage(page, queryWrapper);
List<T> resultList = resultPage.getRecords();
```
其中,"条件字段"是你要筛选的字段,"条件值"是字段的具体条件,"去重字段"是你要根据哪个字段进行去重。
mybatisplus 如何根据字段去重
在 MyBatis-Plus 中,可以使用 Wrapper 来实现根据字段去重查询的功能。下面是一个示例代码,演示了如何使用 MyBatis-Plus 进行字段去重查询:
```java
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> queryDistinctByField(String field) {
QueryWrapper<User> queryWrapper = Wrappers.query();
queryWrapper.select(field).groupBy(field);
return userMapper.selectList(queryWrapper);
}
public Page<User> queryDistinctByFieldWithPage(String field, long current, long size) {
Page<User> page = new Page<>(current, size);
QueryWrapper<User> queryWrapper = Wrappers.query();
queryWrapper.select(field).groupBy(field);
return userMapper.selectPage(page, queryWrapper);
}
}
```
上述示例中,`User` 是实体类,`UserMapper` 是对应的 MyBatis-Plus 的 Mapper 接口。在 `queryDistinctByField` 方法中,我们使用 `QueryWrapper` 来构建查询条件,使用 `select` 方法指定要查询的字段,并使用 `groupBy` 方法来进行分组去重。最后,通过 `selectList` 方法执行查询。
如果需要分页查询,可以使用 `queryDistinctByFieldWithPage` 方法,传入分页参数,并通过 `selectPage` 方法执行分页查询。
这样,就可以使用 MyBatis-Plus 实现根据字段去重的查询功能。
阅读全文