Heim > Backend-Entwicklung > Golang > Wie frage ich MySQL mit einem ID-Slice mithilfe von SQLx ab?

Wie frage ich MySQL mit einem ID-Slice mithilfe von SQLx ab?

DDD
Freigeben: 2024-12-05 12:34:10
Original
904 Leute haben es durchsucht

How to Query MySQL with a Slice of IDs Using SQLx?

Verwenden von SQLx zum Abfragen von MySQL nach Werten in einem Slice

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
Nach dem Login kopieren

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.

Lösung mit In()

Um diesen Fehler zu beheben, können die folgenden Schritte unternommen werden:

  1. 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)
    }
    Nach dem Login kopieren
  2. Neu binden die Abfrage, um sie mit dem Datenbank-Backend kompatibel zu machen:

    query = database.SQL.Rebind(query)
    Nach dem Login kopieren
  3. Führen Sie die Abfrage mit Select() aus:

    err = database.SQL.Select(&quotes, query, args...)
    Nach dem Login kopieren

Kombination in einer Zeile

Der gesamte Prozess kann in einem einzigen vereinfacht werden Zeile:

err = database.SQL.Select(&quotes, database.SQL.Rebind(query), args...)
Nach dem Login kopieren

Ressourcen

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage