Maison > Article > base de données > Comment exécuter des requêtes SQL avec des noms de table générés dynamiquement dans MySQL ?
Utilisation de noms de table dynamiques dans les requêtes MySQL
Dans MySQL, l'exécution de requêtes SQL avec des noms de table générés dynamiquement peut entraîner des erreurs. Pour surmonter ce problème, nous pouvons utiliser des instructions préparées, qui offrent un moyen sûr et efficace de gérer de tels scénarios.
Dans le code fourni :
SET @id := '47'; SET @table := @id+'_2013_2014_voucher'; SELECT * FROM @table; Delete FROM @table where>
L'erreur se produit car MySQL ne fonctionne pas reconnaître "@table" comme nom de table valide directement dans la requête.
Pour résoudre ce problème, nous pouvons utiliser une instruction préparée pour construire dynamiquement la requête en fonction du nom de la table. Le code suivant montre comment y parvenir :
SET @id := '47'; SET @table := concat(@id,'_2013_2014_voucher'); set @qry1:= concat('select * from ',@table); prepare stmt from @qry1 ; execute stmt ;
Dans MySQL, la fonction "concat" est utilisée pour la concaténation de chaînes. Nous l'utilisons pour construire le nom de la table dans l'instruction préparée "@qry1".
Une fois l'instruction préparée créée, nous pouvons ensuite l'exécuter à l'aide de la commande "execute stmt". Cette approche nous permet de générer dynamiquement des noms de tables et d'exécuter des requêtes sans rencontrer d'erreurs de syntaxe.
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!