// ...
// GetPaginatedUsersDistinctName 返回不重复的 name 字段的分页数据和总数
func GetPaginatedUsersDistinctName(db *gorm.DB, page, pageSize int) (int64, []*User, error) {
var totalCount int64
var uniqueNames []string
// 查询不重复的 name 值和总的条数
if err := db.Model(&User{}).Select("DISTINCT name").Count(&totalCount).Pluck("DISTINCT name", &uniqueNames).Error; err != nil {
return 0, nil, err
}
// 查询分页数据
var users []*User
if err := db.Model(&User{}).Where("name IN (?)", uniqueNames).Limit(pageSize).Offset((page - 1) * pageSize).Find(&users).Error; err != nil {
return 0, nil, err
}
return totalCount, users, nil
}
gorm一个方法中查询数据库某一列不重复的方法
于 2023-12-17 22:06:38 首次发布