Sélection dynamique des noms de colonnes dans MySQL
Lorsque vous travaillez avec des tables MySQL dont les structures peuvent changer fréquemment, il peut être difficile de sélectionner des noms de colonnes spécifiques codé en dur dans vos instructions SQL. Pour surmonter ce problème, une technique peut être utilisée qui sélectionne dynamiquement les noms de colonnes en fonction du schéma actuel de la table.
En réponse à la question présentée, un exemple SQLFiddle est fourni :
CREATE TABLE atable ( prefix1 VARCHAR(10) ,prefix2 VARCHAR(10) ,notprefix3 INT ,notprefix4 INT ); INSERT INTO atable VALUES ('qwer qwer', 'qwerqwer', 1, 1); INSERT INTO atable VALUES ('qwer qwer', 'asdfaasd', 1, 1); INSERT INTO atable VALUES ('qwer qwer', 'qrt vbb', 1, 1); INSERT INTO atable VALUES ('qwer qwer', 'sdfg sdg', 1, 1); 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;
Ceci Cet exemple est utile pour sélectionner des noms de colonnes partageant un préfixe commun, tel que « prefix1 » et « prefix2 ». Cependant, il présente quelques limitations :
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!