Heim >Backend-Entwicklung >Golang >Wie frage ich MySQL mit einem ID-Slice mithilfe von SQLx ab?
Beim Abfragen einer MySQL-Tabelle nach in einem Slice enthaltenen Werten können Benutzer auf einen Fehler ähnlich dem folgenden stoßen:
sql: converting Exec argument #0's type: unsupported type []int, a slice
Dieses Problem tritt auf, weil SQLx Abfragen mit einem Slice als Argument nicht grundsätzlich unterstützt. Es bietet jedoch eine Lösung durch seine In()-Funktion.
Um diesen Fehler zu beheben, können die folgenden Schritte unternommen werden:
Bereiten Sie die Abfrage mit In() vor, um das Slice als Argument einzuschließen:
query, args, err := sqlx.In("SELECT * FROM quote WHERE qid IN (?)", qids) if err != nil { log.Fatal(err) }
Neu binden die Abfrage, um sie mit dem Datenbank-Backend kompatibel zu machen:
query = database.SQL.Rebind(query)
Führen Sie die Abfrage mit Select() aus:
err = database.SQL.Select(&quotes, query, args...)
Der gesamte Prozess kann in einem einzigen vereinfacht werden Zeile:
err = database.SQL.Select(&quotes, database.SQL.Rebind(query), args...)
Weitere Beispiele und Dokumentation finden Sie auf der offiziellen SQLx-Website: http://jmoiron.github.io/sqlx/
Das obige ist der detaillierte Inhalt vonWie frage ich MySQL mit einem ID-Slice mithilfe von SQLx ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!