Maison > base de données > tutoriel mysql > Comment sélectionner des données d'une table avec un nom de variable dans MySQL ?

Comment sélectionner des données d'une table avec un nom de variable dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-12-27 00:43:09
original
716 Les gens l'ont consulté

How to Select Data from a Table with a Variable Name in MySQL?

Sélection de données à partir d'un nom de table variable dans MySQL

Dans MySQL, vous pouvez rencontrer des scénarios dans lesquels vous devez récupérer des données d'une table dont le nom est stocké dans une variable. Cela peut être difficile à réaliser avec SQL seul, car l'accès dynamique à une table par son nom peut entraîner des erreurs.

Problème :

Considérez le scénario suivant :

SET @ID_1 = (SELECT ID FROM `slider` LIMIT 0,1);
SET @Cat = (SELECT Category FROM `slider` LIMIT 0,1);
select * from @Cat where ID = @ID_1;
Copier après la connexion

L'exécution de cette requête entraînera une erreur, car MySQL ne peut pas interpréter la variable @Cat comme une table valide nom.

Solution :

Pour surmonter cette limitation, vous pouvez utiliser une instruction préparée :

SET @s = CONCAT('select * from ', @Cat, ' where ID = ', @ID_1);

PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
Copier après la connexion

Répartition :

  • SET @s: Concatène les chaînes pour former la requête SQL dynamique.
  • PREPARE stmt1 FROM @s: Prépare l'instruction stmt1 à l'aide de la requête SQL dynamique stockée dans la variable @s.
  • EXECUTE stmt1 : Exécute l'instruction préparée.
  • DEALLOCATE PREPARE stmt1 : Désalloue l'instruction préparée pour libérer des ressources.

Cette approche vous permet d'exécuter une requête SQL de manière dynamique, où le nom de la table est déterminé au moment de l'exécution à partir des valeurs stockées dans les variables @ Chat et @ID_1.

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