Utiliser efficacement une instruction WHERE IN
L'instruction WHERE IN est essentielle pour faire correspondre les enregistrements en fonction d'un ensemble de valeurs spécifié. Cependant, le construire correctement peut être difficile.
Si vous essayez d'utiliser :
WHERE obj IN (?)
Vous pouvez rencontrer des erreurs si le nombre de valeurs fournies ne correspond pas au nombre de paramètres . Pour résoudre ce problème :
statement = "SELECT * FROM tab WHERE obj IN ({0})".format(', '.join(['?'] * len(list_of_vars))) c.execute(statement, list_of_vars)
Dans cette approche, nous générons dynamiquement une instruction avec le nombre correct d'espaces réservés de paramètres en utilisant '.join()' et '.format()'.
Alternativement, pour une approche plus efficace avec de grandes listes de variables, envisagez d'utiliser une table temporaire. Joignez la table temporaire à votre table principale au lieu d'utiliser la clause IN avec les paramètres de liaison. Cette optimisation améliore les performances en réduisant le nombre de liaisons de base de données requises.
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!