Dynamische Spaltennamenauswahl in MySQL
Bei der Arbeit mit MySQL-Tabellen, deren Strukturen sich häufig ändern können, kann es schwierig sein, bestimmte Spaltennamen auszuwählen in Ihren SQL-Anweisungen fest codiert. Um dies zu überwinden, kann eine Technik eingesetzt werden, die Spaltennamen basierend auf dem aktuellen Schema der Tabelle dynamisch auswählt.
Als Antwort auf die gestellte Frage wird ein SQLFiddle-Beispiel bereitgestellt:
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;
Dies Beispiel ist nützlich für die Auswahl von Spaltennamen, die ein gemeinsames Präfix haben, z. B. „Präfix1“ und „Präfix2“. Es gibt jedoch einige Einschränkungen:
Das obige ist der detaillierte Inhalt vonWie kann ich Spaltennamen in MySQL basierend auf Schemaänderungen dynamisch auswählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!