Itérer dynamiquement les noms de colonnes dans une table MySQL
Cette question explore une méthode pour parcourir les noms de colonnes dans une table MySQL à l'aide d'un procédure écrite en SQL natif. Le but est d'obtenir une liste de noms de colonnes, puis d'exécuter une procédure stockée basée sur chaque nom de colonne en tant que variable.
Récupération des noms de colonnes
Pour récupérer les noms de colonnes à partir d'une table MySQL, utilisez la commande SHOW COLUMNS FROM
Parcourir les noms de colonnes
Une fois les noms de colonnes récupérés, ils peuvent être stockés en boucle à l'aide d'un curseur. Un curseur est un itérateur qui permet de parcourir un ensemble de résultats ligne par ligne. Voici un exemple :
DECLARE col_names CURSOR FOR SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'tbl_name' ORDER BY ordinal_position;
Ce curseur sélectionne les noms de colonnes de la table spécifiée, les classe selon leur position et nomme le curseur col_names.
Exécuter une boucle
Pour parcourir les noms de colonnes et exécuter une procédure stockée, utilisez ce qui suit loop:
SET i = 1; the_loop: LOOP IF i > num_rows THEN CLOSE col_names; LEAVE the_loop; END IF; FETCH col_names INTO col_name; //do whatever else you need to do with the col name SET i = i + 1; END LOOP the_loop;
Cette boucle utilise une instruction FETCH pour récupérer le nom de la colonne suivante dans une variable col_name. À l'intérieur de la boucle, toutes les actions nécessaires basées sur le nom de la colonne peuvent être effectuées.
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!