Maison >développement back-end >Tutoriel Python >Comment puis-je utiliser des listes Python avec des requêtes SQL à l'aide d'instructions paramétrées ?

Comment puis-je utiliser des listes Python avec des requêtes SQL à l'aide d'instructions paramétrées ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-25 21:56:15283parcourir

How Can I Use Python Lists with SQL Queries Using Parameterized Statements?

Utilisation de requêtes paramétrées pour incorporer des listes Python dans SQL

Considérez le scénario dans lequel vous possédez une liste Python contenant plusieurs éléments, tels que l = [1,5,8]. Votre objectif est de formuler une requête SQL qui extrait les données associées aux éléments de la liste, comparable à :

select name from students where id = |IN THE LIST l|

Pour y parvenir, une requête paramétrable s'avère être une solution efficace. Cette approche permet l'inclusion à la fois d'entiers et de chaînes dans la requête :

import sqlite3

l = [1,5,8]

# Define a placeholder depending on the specific DBAPI paramstyle.
# For SQLite, '?' is appropriate.
placeholder= '?' 
placeholders= ', '.join(placeholder for unused in l)

# Construct the SQL query with parameter placeholders.
query= 'SELECT name FROM students WHERE id IN (%s)' % placeholders

# Establish a database connection and cursor.
conn = sqlite3.connect('database.db')
cursor = conn.cursor()

# Execute the query with the Python list as parameter input.
cursor.execute(query, l)

# Retrieve and process query results.
for row in cursor.fetchall():
    # Access and utilize the data row here.
    pass

# Close the database connection.
conn.close()

En utilisant cette technique, vous pouvez intégrer dynamiquement des données variables à partir de listes Python dans vos requêtes SQL, simplifiant ainsi le processus de récupération de données basé sur sur plusieurs valeurs de paramètres.

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!

Déclaration:
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