Maison > base de données > tutoriel mysql > Comment exécuter une requête SELECT avec une clause IN à l'aide de MySQLdb ?

Comment exécuter une requête SELECT avec une clause IN à l'aide de MySQLdb ?

Barbara Streisand
Libérer: 2024-10-31 00:53:03
original
192 Les gens l'ont consulté

How to Execute a SELECT Query with an IN Clause Using MySQLdb?

Exécution de "SELECT ... WHERE ... IN ..." à l'aide de MySQLdb

Lors de la tentative d'exécution d'une requête SELECT avec un IN utilisant MySQLdb, les utilisateurs peuvent rencontrer des problèmes où aucune ligne n'est renvoyée malgré le fonctionnement de la requête comme prévu à partir de la ligne de commande mysql. Cela peut se produire en raison de guillemets inutiles placés autour des valeurs IN.

Pour résoudre ce problème, une construction manuelle des paramètres de requête est requise. Dans Python 2 et 3, une chaîne d'espaces réservés (%s) séparés par des virgules peut être générée à partir de la liste des valeurs IN. La requête peut ensuite être formatée à l'aide de cette chaîne et exécutée avec la liste de valeurs d'origine.

Pour Python 3 :

<code class="python">args=['A', 'C']
sql='SELECT fooid FROM foo WHERE bar IN (%s)' 
in_p=', '.join(list(map(lambda x: '%s', args)))
sql = sql % in_p
cursor.execute(sql, args)</code>
Copier après la connexion

Pour Python 2 :

<code class="python">args=['A', 'C']
sql='SELECT fooid FROM foo WHERE bar IN (%s)' 
in_p=', '.join(map(lambda x: '%s', args))
sql = sql % in_p
cursor.execute(sql, args)</code>
Copier après la connexion

En suivant cette approche, la requête SQL sera correctement formatée avec les valeurs IN souhaitées, résolvant ainsi le problème où aucune ligne n'était renvoyée précédemment.

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