Lorsque vous travaillez avec des requêtes de base de données, il devient nécessaire de récupérer les résultats et de les convertir en une structure de données pratique. Dans Go, le package base de données/sql standard fournit le type Rows pour représenter un ensemble de lignes renvoyées par une requête. Cependant, le défi se pose lorsque l'on souhaite créer une carte à partir de ces lignes, où les clés de la carte sont les noms de colonnes et les valeurs sont les valeurs de ligne correspondantes.
Pour résoudre ce problème, il est recommandé d'utiliser le package sqlx. . Voici un exemple montrant comment convertir des lignes en une tranche de cartes à l'aide de sqlx :
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx" ) type Place struct { ID int Telcode int } func main() { db, err := sqlx.Open("mysql", "user:password@tcp(localhost:3306)/database") if err != nil { fmt.Printf(err) return } rows, err := db.Query("SELECT * FROM place ORDER BY telcode ASC") if err != nil { fmt.Printf(err) return } places := []map[string]interface{}{} for rows.Next() { rowMap := make(map[string]interface{}) if err := rows.MapScan(rowMap); err != nil { fmt.Printf(err) return } places = append(places, rowMap) } fmt.Println(places) }
Dans cet exemple, la fonction sqlx.MapScan est utilisée pour analyser chaque ligne dans une carte. La tranche de cartes résultante est stockée dans la variable places et imprimée. Cette approche permet une représentation plus flexible des données de ligne, où les noms de colonnes deviennent les clés de la carte et les valeurs correspondantes sont accessibles via l'interface de la carte.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!