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 []
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("es, query, args...) if err != nil { log.Fatal(err) }
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!