Maison > développement back-end > Golang > Comment interroger MySQL avec sqlx en utilisant une tranche de valeurs ?

Comment interroger MySQL avec sqlx en utilisant une tranche de valeurs ?

Barbara Streisand
Libérer: 2024-12-01 01:17:10
original
747 Les gens l'ont consulté

How to Query MySQL with sqlx Using a Slice of Values?

Interrogation de MySQL avec sqlx et une tranche de valeurs

Lors de l'interrogation d'une table de base de données pour récupérer des données en fonction des valeurs contenues dans une tranche, les utilisateurs peut rencontrer des erreurs comme celle illustrée ci-dessous :

sql: converting Exec argument #0's type: unsupported type []int, a slice
quotes []
Copier après la connexion

Cette erreur indique que la requête attend un type spécifique pour le paramètre d'entrée, mais à la place, il reçoit une tranche, qui n'est pas un type pris en charge.

Pour résoudre ce problème, sqlx fournit une fonction d'assistance pratique appelée In(). Cette fonction prend la tranche de valeurs et la chaîne de requête comme arguments et renvoie une requête modifiée avec le ? bindvar. Cette requête peut ensuite être renvoyée vers le backend de base de données approprié à l'aide de la méthode Rebind().

Voici un exemple d'utilisation de In() :

var qids []int

// fills qids on query dynamically
query, args, err := sqlx.In("SELECT * FROM quote WHERE qid IN (?)", qids)
if err != nil {
    log.Fatal(err)
}

// sqlx.In returns queries with the `?` bindvar, we can rebind it for our backend
//
query = database.SQL.Rebind(query)  // database.SQL should be a *sqlx.DB

err = database.SQL.Select(&quotes, query, args...)
if err != nil {
    log.Fatal(err)
}
Copier après la connexion

Le code ci-dessus récupère les valeurs à partir de la table « quote » où le champ « qid » correspond à l'une des valeurs de la tranche qids.

Pour plus de références et d'exemples, visitez le site officiel Documentation sqlx sur http://jmoiron.github.io/sqlx/.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal