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;
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;
Répartition :
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!