Maison >base de données >tutoriel mysql >Comment puis-je sélectionner et mettre à jour dynamiquement des champs MySQL à l'aide de variables ?

Comment puis-je sélectionner et mettre à jour dynamiquement des champs MySQL à l'aide de variables ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-23 11:02:34236parcourir

How Can I Dynamically Select and Update MySQL Fields Using Variables?

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!

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