Dekodierung unstrukturierter Ergebnisse im SQL-Paket von Go
In der Programmiersprache Go ist die SQL. Der Zeilentyp spielt eine entscheidende Rolle beim Abrufen von Daten aus Datenbanken. Einige stellen jedoch möglicherweise seine Fähigkeiten in Frage, wenn es um Ad-hoc-Abfragen oder das Abrufen aller Spalten aus einer Tabelle geht, die sich in Zukunft entwickeln könnten.
Behebung des Problems
An Um diese Herausforderung zu meistern, ist es wichtig, die Columns-Methode von SQL zu nutzen. Reihen. Diese Methode liefert eine Liste von Spaltennamen, sodass Sie die Anzahl der in unbekannten Abfragen vorhandenen Spalten bestimmen können.
Nutzung der Schnittstelle und RawBytes-Verarbeitung
Außerdem die Scan-Methode unterstützt das Scannen von Spaltenwerten ohne vorherige Kenntnis ihrer Typen. Sie können interface{} verwenden, um Werte direkt aus der Datenbank zu kopieren, oder RawBytes verwenden, um Rohdaten zu erhalten.
Beispielimplementierung
Zur Demonstration Beachten Sie für diese Techniken den folgenden Codeausschnitt:
<code class="go">// Get column names columnNames, err := rows.Columns() if err != nil { // Handle error } // Allocate arrays for columns and their pointers columns := make([]interface{}, len(columnNames)) columnPointers := make([]interface{}, len(columnNames)) // Iterate through column pointers and assign to columns slice for i := 0; i < len(columnNames); i++ { columnPointers[i] = &columns[i] } // Scan row values into columnPointers if err := rows.Scan(columnPointers...); err != nil { // Handle error } // Access column values from columns slice</code>
Durch die Nutzung vonとで、データベースから取得したあらゆる列の値を、型情報を事前に知らなくてもデコードすることができます.この柔軟性は、アドホッククエ
Das obige ist der detaillierte Inhalt vonWie kann ich unstrukturierte SQL-Ergebnisse in Go dekodieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!