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

使用gorm Golang lib构建自定义查询,go,go-gorm,Go,Go Gorm,我正在使用 我想基于一些自定义条件构建selectQuery selectQuery := db.Select("username").Where("status = 'active'") selectQuery.Limit(10) if err := selectQuery.Find(&users).Error; err != nil { // } else { // } 为什么不实行限制 如果使用以下代码实现,它将正常工作: if err := db.Select("usernam

我正在使用

我想基于一些自定义条件构建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 {
//
}
为什么不实行限制

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

您需要使用:

selectQuery = selectQuery.Limit(10)

对不起,我错了,错投了反对票。除非对其进行编辑,否则我无法取消注释,因此作为一个借口,我对您的另一个答案进行了投票。再次检查限制函数:
//限制指定要检索的记录数func(s*DB)限制(限制接口{})*DB{return s s.clone().search.Limit(Limit).DB}
这是正确的答案