Maison > développement back-end > Golang > Lire les lignes de la base de données dans une chaîne mappée

Lire les lignes de la base de données dans une chaîne mappée

WBOY
Libérer: 2024-02-09 13:24:18
avant
534 Les gens l'ont consulté

Lire les lignes de la base de données dans une chaîne mappée

éditeur php Xiaoxin La lecture des lignes de la base de données dans des chaînes mappées est une technique courante de traitement des données. En lisant et en mappant les données de ligne de la table de base de données en chaînes, la manipulation et le traitement des données peuvent être facilement effectués. Cette technologie est souvent utilisée dans le développement Web pour convertir les résultats des requêtes de base de données dans un format de chaîne plus lisible pour un affichage et une utilisation faciles. Cela améliore non seulement l'efficacité du traitement des données, mais simplifie également la logique du code, rendant le programme plus concis et plus facile à maintenir. La lecture des lignes de la base de données dans les chaînes mappées est une compétence importante et indispensable pour les développeurs.

Contenu de la question

Je souhaite lire les résultats d'une simple table SQL comme indiqué ci-dessous

client clé
A 12345
B 6789

Maintenant, je veux construire un map[string]string avec des paires clé-valeur égales aux valeurs de ligne comme ceci :

map[a:12345, b:6789]
Copier après la connexion

Cependant, j'ai du mal à retirer les valeurs des résultats de la requête et à créer dynamiquement les paires clé-valeur. Je vais vous donner un aperçu du code (la connexion SQL n'était pas le problème, je l'ai compris)

import "database/sql"

func main() {

    // some code to connect to mssql...

    db, _ := sql.open("mssql", connstring)

    stmt := "select customer, key from tbl"
    rows, _ := db.query(stmt)
    defer rows.close()

    data := make(map[string]string)
    for rows.next() {
        // need help here grabbing each row pair and adding them to my map...
    }
}
Copier après la connexion

Je suis également prêt à essayer de faire cela avec une structure vide, où les champs deviennent la première colonne de l'ensemble de résultats (dynamiquement) et les valeurs deviennent la deuxième colonne de l'ensemble de résultats.

Solution

Vous pouvez stocker temporairement les valeurs dans deux variables puis les stocker dans la carte :

func main() {
    stmt := "SELECT customer, key from tbl"
    rows, _ := db.Query(stmt)
    defer rows.Close()

    data := make(map[string]string)
    var (
        consumer string
        key string
    )
    for rows.Next() {
        if err := rows.Scan(&consumer, &key); err != nil {
            // Handle err
        }

        data[consumer] = key 
    }

    for k, v := range data {
        fmt.Println(k, v)
    }
    // "A" "12345"
    // "B" "6789"

}
Copier après la connexion

Notez que les variables consumerkey sont allouées en dehors de la boucle afin que nous puissions les réutiliser. Même si la valeur est une chaîne vide, la variable sera écrasée à chaque itération.

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal