Sélection dynamique de champs dans MySQL basée sur une variable
Il est souvent nécessaire dans la programmation de bases de données de sélectionner dynamiquement des champs en fonction de valeurs variables. Cela peut être particulièrement utile dans les scénarios où les noms de champs sont inconnus ou varient de manière dynamique.
Sélection de champ à l'aide d'une variable de chaîne
Question : Est-ce possible de sélectionner un champ dont le nom est stocké dans une variable chaîne dans MySQL ?
SELECT 'fieldname' FROM table;
Réponse : Oui, il est possible de construire l'instruction MySQL de manière dynamique en utilisant la variable chaîne :
SET @fieldname = 'name'; SELECT @fieldname FROM table;
Mises à jour dynamiques à l'aide Variables de champ
Question :Comment puis-je effectuer des mises à jour sur une table utilisant une variable qui représente le nom du champ dans MySQL ?
SET fieldname = NEW.`name`; UPDATE table SET fieldname = 1;
Réponse : Il n'est pas possible d'utiliser directement une chaîne arbitraire comme nom de champ dans MySQL. Cependant, vous pouvez utiliser une solution de contournement en utilisant la fonctionnalité PREPARED SHATEMENTS de MySQL :
SELECT columnname FROM queries INTO @colname; SET @table = 'mytable'; SET @s = CONCAT('SELECT ', @colname, ' FROM ', @table); PREPARE stmt FROM @s; EXECUTE stmt;
Cela vous permet de créer une instruction préparée avec un nom de champ dynamique basé sur la valeur stockée dans la variable @colname.
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!