golang gorm limit

在Golang的GORM库中,
Limit
方法用于指定查询时返回的最大记录数。例如,如果你想查询最新的5条记录,可以使用如下代码:
db.Order(“created_at desc”).Limit(5).Find(&users)
此外,
Offset
方法用于指定在开始返回记录之前要跳过的记录数,通常与
Limit
方法一起使用,实现分页查询:
db.Limit(5).Offset(5).Order(“created_at desc”).Find(&users)
如果你需要获取模型的记录数,可以使用
Count
方法。但请注意,使用
Count
时不能使用
Offset
,或者需要将
Offset
的值设为
-1
来取消
Offset
限制,否则可能会报错
sql: no rows in result set
:
db.Limit(5).Offset(-1).Order(“created_at desc”).Find(&users).Count(&count)
// 或者
db.Model(&User{}).Where(“name = ?”, “jinzhu”).Count(&count)
如果你想实现分页查询并获取总记录数,可以先使用
Count
方法获取总数,然后再使用
Limit
和
Offset
方法进行分页查询:
var total int
db.Model(&User{}).Where(“price >= ?”, 0).Count(&total)
var users []User
db.Where(“price >= ?”, 0).Limit(pageSize).Offset((page-1)*pageSize).Order(“created_at desc”).Find(&users)
这样,你就可以先获取总记录数
total
,然后再获取指定页面的记录。