Herausforderung:
Viele Programmieraufgaben erfordern das Extrahieren von Zeilen Daten aus Datenbanktabellen in ein strukturiertes Format. In Go stellt das Datenbank-/SQL-Paket Zeileninstanzen zum Durchlaufen von Tabellenzeilen bereit. Allerdings erwartet die Scan-Methode von Rows Zeiger auf Zielvariablen mit bekannten Typen, was eine Herausforderung sein kann, wenn die Anzahl und Typen der Spalten im Voraus unbekannt sind.
Lösung:
Um Spalten aus einer Rows-Instanz in einen []String einzulesen, können Sie den folgenden Ansatz verwenden:
Beispiel:
package main import ( "fmt" "io" "database/sql" ) func dumpTable(rows *sql.Rows, out io.Writer) error { colNames, err := rows.Columns() if err != nil { return err } writer := csv.NewWriter(out) writer.Comma = '\t' readCols := make([]interface{}, len(colNames)) writeCols := make([]string, len(colNames)) for i, _ := range writeCols { readCols[i] = &writeCols[i] } for rows.Next() { err := rows.Scan(readCols...) if err != nil { return err } writer.Write(writeCols) } if err = rows.Err(); err != nil { return err } writer.Flush() return nil }
Mit diesem Code können Sie Spalten aus einer Rows-Instanz lesen und sie zur weiteren Verarbeitung in einen []String konvertieren .
Das obige ist der detaillierte Inhalt vonWie extrahiere ich Spaltenwerte aus einer Go SQL Rows-Instanz in einen []String?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!