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 ?

Comment exécuter des requêtes SQL avec des noms de table générés dynamiquement dans MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-07 15:57:03861parcourir

How to Execute SQL Queries with Dynamically Generated Table Names in 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!

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