Beim Arbeiten mit SQL-Abfragen in einem Slice können Fehler wie „Exec-Argument Nr. 0 werden konvertiert“ auftreten Typ: nicht unterstützter Typ []int, ein Slice.“ Um dieses Problem zu beheben, können Sie die von der SQLX-Bibliothek bereitgestellte In()-Hilfsfunktion verwenden.
Die Syntax für In() lautet wie folgt:
query, args, err := sqlx.In(query, args)
wobei query die ursprüngliche Abfrage ist string und args sind die Wertesegmente, die in die Abfrage interpoliert werden sollen.
Um In() zu verwenden, befolgen Sie diese Schritte:
Bereiten Sie die Abfrage vor, indem Sie das Slice an die In()-Funktion übergeben:
query, args, err := sqlx.In("SELECT * FROM quote WHERE qid IN (?)", qids)
Binden Sie die Abfrage erneut für Ihre spezifische Datenbank Backend:
query = database.SQL.Rebind(query)
Führen Sie das aus Abfrage:
err = database.SQL.Select(&quotes, query, args...)
Alternativ können Sie die Vorbereitungs- und Ausführungsschritte in einer Zeile zusammenfassen:
err = database.SQL.Select(&quotes, database.SQL.Rebind(query), args...)
Weitere Beispiele und Dokumentation finden Sie im SQLX Bibliotheksdokumentation unter http://jmoiron.github.io/sqlx/.
Das obige ist der detaillierte Inhalt vonWie vermeide ich „nicht unterstützte Typ-[]int'-Fehler bei der Verwendung von SQLx in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!