Récupération des noms de colonnes dynamiques dans MySQL
Dans MySQL, la sélection dynamique des noms de colonnes devient nécessaire lorsque la structure de la table est inconnue ou soumise à des changements fréquents . Ce guide explore une approche pour accomplir cette tâche efficacement.
Utilisation des instructions préparées et du SQL dynamique
Pour sélectionner dynamiquement les noms de colonnes, nous pouvons exploiter les instructions préparées et le SQL dynamique. Cette technique nous permet de construire une instruction SQL basée sur les informations d'exécution :
SELECT c.COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS c WHERE c.TABLE_NAME = 'table_name' AND c.COLUMN_NAME LIKE 'prefix%';
SET @query = CONCAT('SELECT ', GROUP_CONCAT(c.COLUMN_NAME), ' FROM table_name;');
PREPARE stmt FROM @query;
EXECUTE stmt;
Avantages et considérations
Exemple d'implémentation
L'extrait de code fourni illustre le processus de sélection dynamique des colonnes :
CREATE TABLE atable ( prefix1 VARCHAR(10), prefix2 VARCHAR(10), notprefix3 INT, notprefix4 INT ); /* Insert sample data */ SELECT CONCAT('SELECT ', GROUP_CONCAT(c.COLUMN_NAME), ' FROM atable;') INTO @query FROM INFORMATION_SCHEMA.COLUMNS c WHERE c.TABLE_NAME = 'atable' AND c.COLUMN_NAME LIKE 'prefix%' ORDER BY c.ORDINAL_POSITION; PREPARE stmt FROM @query; EXECUTE stmt;
Ce code sélectionne et affiche dynamiquement les colonnes dont les noms commencent par "préfixe" dans la table table.
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!