Heim >Backend-Entwicklung >Golang >Wie verwende ich die Funktion „In()' von SQLx, um MySQL mit einem ID-Slice abzufragen?

Wie verwende ich die Funktion „In()' von SQLx, um MySQL mit einem ID-Slice abzufragen?

Susan Sarandon
Susan SarandonOriginal
2024-11-28 09:54:10776Durchsuche

How to Use SQLx's `In()` Function to Query MySQL with a Slice of IDs?

Verwenden von SQLx zum Abfragen von MySQL mit IN aus einem Slice

In SQLx besteht die Notwendigkeit, eine Tabelle mit in einem Slice gespeicherten Werten abzufragen. Dies kann durch die Verwendung der In()-Hilfsfunktion erreicht werden.

Codebeispiel

Um den angegebenen Fehler zu beheben, kann das folgende Codefragment verwendet werden:

var qids []int

// Populate qids dynamically

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

database.SQL := sqlx.MustConnect("driver_name", "dsn")
query = database.SQL.Rebind(query)  // Assuming database.SQL is a *sqlx.DB

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

Funktionalitäten

  • Die In()-Funktion bereitet die Abfrage vor, indem sie die Argumente übernimmt und erneut bindet sie.
  • Rebind() konvertiert die Abfrage, um die entsprechenden Bind-Variablen für das spezifische Datenbank-Backend zu verwenden.
  • Durch die Kombination von In() und Rebind() wird die Abfrage vorbereitet und für die Ausführung optimiert .

Zusätzliche Ressourcen

Zur weiteren Referenz dient die folgende Dokumentation empfohlen:

  • SQLx-Dokumentation: http://jmoiron.github.io/sqlx/
  • In()-Funktionsdokumentation: https://godoc.org/github.com/ jmoiron/sqlx#In
  • Rebind()-Funktionsdokumentation: https://godoc.org/github.com/jmoiron/sqlx#Rebind

Das obige ist der detaillierte Inhalt vonWie verwende ich die Funktion „In()' von SQLx, um MySQL mit einem ID-Slice abzufragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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