GORM 分页和排序问题

GORM paginate and order issue

我想按 id DESC 排序,分页查询使用 GORM(mysql)。

var result []User
page := 1
size := 3
offset := (page - 1) * size
if err := conn.Limit(size).Offset(offset).Order("id DESC").Find(&result).Error;err != nil {
    log.Panicf(err)
}
fmt.Println(result)

我的 table 有 15 条记录。

结果 return 喜欢 [15,14,13] 而不是 [3,2,1] 意思是先排序再分页,如何解决

请参考这个回答。 ORDER BY 在 LIMIT 之前首先由 sql 引擎执行。