2017-04-02 95 views
1

我使用http://jinzhu.me/gorm/crud.html#query構建自定義查詢

我想爲什麼不施加限制一些自定義條件

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

建立selectQuery基地?

它如果與下面的代碼實現的工作:

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

回答

0

爲什麼不施加限制?

因爲你忽略了Limit的返回值。實際上,您正在創建一個帶有限制的查詢,然後將其扔掉而不執行它。

您需要使用:

selectQuery = selectQuery.Limit(10) 
+0

謝謝你,你救了我的時間 – v2tmobile

+0

對不起,我錯了,錯downvoted。除非編輯它,否則我不能解除它,所以作爲我提出了另一個答案的藉口。 – zerkms

+0

再次檢查限制功能: //限制指定要檢索的記錄數 func(s * DB)限制(限制接口{})* DB {s}返回s.clone()。search.Limit(limit ).db }' 所以這是一個正確的答案 – v2tmobile