使用 gorm Golang lib 构建自定义查询

Build custom query with gorm Golang lib

我正在使用 http://jinzhu.me/gorm/crud.html#query

我想根据一些自定义条件构建 selectQuery

selectQuery := db.Select("username").Where("status = 'active'")
selectQuery.Limit(10)
if err := selectQuery.Find(&users).Error; err != nil {
//
} else {
//
}

为什么不应用限制?

如果用下面的代码实现就可以了:

if err := db.Select("username").Where("status = 'active").Limit(10).Find(&users).Error; err != nil {
//
} else {
//
}

Why limit is not applied?

因为您忽略了 Limit 的 return 值。实际上,您正在创建一个带有限制的查询,然后在不执行它的情况下将其丢弃。

您需要使用:

selectQuery = selectQuery.Limit(10)