Maison > base de données > tutoriel mysql > Comment puis-je utiliser une liste Python comme paramètre dans une clause SQL `IN` ?

Comment puis-je utiliser une liste Python comme paramètre dans une clause SQL `IN` ?

Susan Sarandon
Libérer: 2025-01-20 10:12:09
original
841 Les gens l'ont consulté

How Can I Use a Python List as a Parameter in an SQL `IN` Clause?

Mettre la liste Python comme paramètre dans la requête SQL

Dans le développement Python, nous rencontrons souvent des scénarios dans lesquels nous devons intégrer des données dans des listes dans des requêtes SQL. Cela se produit souvent lors de l'utilisation de frameworks Python qui suivent le modèle ORM (Object Relational Mapping). Cette question présente un cas spécifique où une liste Python sera utilisée comme paramètre de filtre dans une requête SQL. Le but est de récupérer les données de tous les éléments de la liste.

Pour y parvenir, une approche courante consiste à paramétrer la requête, en utilisant des espaces réservés qui seront remplacés par des valeurs de liste lors de l'exécution. Cela améliore non seulement la lisibilité du code, mais évite également les vulnérabilités de sécurité potentielles associées à la concaténation de chaînes.

Considérez l'extrait de code suivant :

<code class="language-python">l = [1, 5, 8]

placeholder = '?'  # 根据使用的数据库API调整占位符。
placeholders = ', '.join([placeholder for _ in l])

query = 'SELECT name FROM students WHERE id IN (%s)' % placeholders
cursor.execute(query, l)</code>
Copier après la connexion

En utilisant le paramétrage, même les valeurs qui peuvent nécessiter un traitement spécial (comme les chaînes) peuvent être intégrées de manière transparente dans la requête sans avoir besoin de s'échapper. Cette approche fournit un mécanisme puissant et fiable pour ajouter des listes Python aux requêtes SQL.

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