英文:
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 {
//
}
为什么限制(Limit)没有生效?
如果使用下面的代码实现,它是有效的:
if err := db.Select("username").Where("status = 'active'").Limit(10).Find(&users).Error; err != nil {
//
} else {
//
}
英文:
I'm using http://jinzhu.me/gorm/crud.html#query
I want to build selectQuery base on some custom conditions
selectQuery := db.Select("username").Where("status = 'active'")
selectQuery.Limit(10)
if err := selectQuery.Find(&users).Error; err != nil {
//
} else {
//
}
Why limit is not applied?
It’s working if implemented with below code:
if err := db.Select("username").Where("status = 'active").Limit(10).Find(&users).Error; err != nil {
//
} else {
//
}
答案1
得分: 1
为什么限制没有生效?
因为你忽略了Limit的返回值。实际上,你创建了一个带有限制的查询,然后将其丢弃而没有执行它。
你需要使用:
selectQuery = selectQuery.Limit(10)
英文:
> Why limit is not applied?
Because you're ignoring the return value of Limit. In effect, you're creating a query with a limit, then throwing it away without ever executing it.
You need to use:
selectQuery = selectQuery.Limit(10)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论