Heim >Backend-Entwicklung >Golang >Wie kann ich pq.Array verwenden, um Integer-Slices als Argumente in SQL-Abfragen zu übergeben?

Wie kann ich pq.Array verwenden, um Integer-Slices als Argumente in SQL-Abfragen zu übergeben?

Barbara Streisand
Barbara StreisandOriginal
2024-12-10 02:11:08146Durchsuche

How Can I Use pq.Array to Pass Integer Slices as Arguments in SQL Queries?

Einbinden von Slice-Argumenten in SQL-Abfragen mit pq.Array

Beim Versuch, eine SQL-Abfrage auszuführen, die ein Slice von Ganzzahlen als Argumente enthält, Benutzer stoßen möglicherweise auf den Fehler: „SQL: Argumenttyp $1 wird konvertiert: nicht unterstützter Typ []int, ein Teil von int.“ Um dieses Problem zu lösen, kann die pq.Array-Funktion verwendet werden.

Problem:

Betrachten Sie den folgenden Code:

somevars := []int{1, 2, 3, 4}
rows, err := db.Query("SELECT c1,c2 FROM table"+tid+" WHERE c1 IN(,,,);", somevars)

Führen Sie dies aus Die Abfrage ergibt den Fehler: „SQL: Argument $1 konvertieren Typ: nicht unterstützter Typ []int, ein Teil davon int."

Lösung:

Um dieses Problem zu lösen, kann pq.Array verwendet werden, um das Segment der Ganzzahlen in einem einzigen Argument zu kapseln:

somevars := []int{1, 2, 3, 4}
rows, err = db.Query("SELECT c1,c2 FROM table"+tid+" WHERE c1 = any();", pq.Array(somevars))

Die pq.Array-Funktion wandelt das Ganzzahlsegment in eine Array-Darstellung um, sodass es von der SQL-Abfrage korrekt verarbeitet werden kann. Durch die Verwendung von pq.Array können Slice-Argumente mühelos in SQL-Abfragen integriert werden und so die Fehlermeldung auflösen.

Das obige ist der detaillierte Inhalt vonWie kann ich pq.Array verwenden, um Integer-Slices als Argumente in SQL-Abfragen zu übergeben?. 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