Heim > Backend-Entwicklung > Golang > Wie frage ich MySQL mit SQLX mithilfe eines Wertebereichs ab?

Wie frage ich MySQL mit SQLX mithilfe eines Wertebereichs ab?

Barbara Streisand
Freigeben: 2024-12-01 01:17:10
Original
747 Leute haben es durchsucht

How to Query MySQL with sqlx Using a Slice of Values?

Abfragen von MySQL mit SQLX und einem Wertebereich

Beim Abfragen einer Datenbanktabelle zum Abrufen von Daten basierend auf in einem Bereich enthaltenen Werten können Benutzer Es können Fehler wie der folgende auftreten:

sql: converting Exec argument #0's type: unsupported type []int, a slice
quotes []
Nach dem Login kopieren

Dieser Fehler weist darauf hin, dass die Abfrage einen bestimmten Typ für den Eingabeparameter erwartet, stattdessen aber Es empfängt einen Slice, der kein unterstützter Typ ist.

Um dieses Problem zu beheben, stellt sqlx eine praktische Hilfsfunktion namens In() bereit. Diese Funktion verwendet das Wertesegment und die Abfragezeichenfolge als Argumente und gibt eine geänderte Abfrage mit dem ? zurück. bindvar. Diese Abfrage kann dann mithilfe der Rebind()-Methode erneut an das entsprechende Datenbank-Backend gebunden werden.

Hier ist ein Beispiel für die Verwendung von In():

var qids []int

// fills qids on query dynamically
query, args, err := sqlx.In("SELECT * FROM quote WHERE qid IN (?)", qids)
if err != nil {
    log.Fatal(err)
}

// sqlx.In returns queries with the `?` bindvar, we can rebind it for our backend
//
query = database.SQL.Rebind(query)  // database.SQL should be a *sqlx.DB

err = database.SQL.Select(&quotes, query, args...)
if err != nil {
    log.Fatal(err)
}
Nach dem Login kopieren

Der obige Code ruft die Werte ab aus der Tabelle „quote“, wobei das Feld „qid“ mit einem der Werte im qids-Slice übereinstimmt.

Weitere Referenzen und Beispiele finden Sie in der offiziellen SQLX-Dokumentation unter http://jmoiron.github.io/sqlx/.

Das obige ist der detaillierte Inhalt vonWie frage ich MySQL mit SQLX mithilfe eines Wertebereichs ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage