2017-04-02 2 views
1

Ich verwende http://jinzhu.me/gorm/crud.html#queryErstellen benutzerdefinierte Abfrage mit gorm Golang lib

I Select Basis auf einige benutzerdefinierte Bedingungen

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

Warum Grenze nicht angewendet bauen?

Es funktioniert, wenn mit folgendem Code implementiert:

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

Antwort

0

Warum Grenze ist nicht wahr?

Weil Sie den Rückgabewert von Limit ignorieren. In der Tat erstellen Sie eine Abfrage mit einem Limit und werfen sie dann weg, ohne sie jemals auszuführen.

Sie müssen verwenden:

selectQuery = selectQuery.Limit(10) 
+0

danke, Ihnen meine Zeit gespeichert – v2tmobile

+0

Sorry, ich war falsch und Downvoted versehentlich. Ich kann das nicht aufheben, es sei denn, es wird bearbeitet, also entschuldige ich mich bei einer anderen Antwort. – zerkms

+0

Checked on on Limit Funktion: '// Limit gibt die Anzahl der abzurufenden Datensätze an func (s * DB) Limit (limit Schnittstelle {}) * DB { return s.clone(). Search.Limit (limit) .db } ' das ist also eine richtige Antwort – v2tmobile

Verwandte Themen