Если у меня есть неизвестное количество столбцов и только одна строка данных, и я использую Dynami c SQL для извлечения этих данных, мой вопрос, если выбранные данные 2 X n Как я могу перенести его на (n + 1) X 2 , где этот дополнительный 1 - это имя нового столбца?
Вот пример, чтобы прояснить мой вопрос:
Отключение от c: столбцы R: строки
+----+----+----+
| C1 | ...| Cn |
+----+----+----+
| R11| ...| R1n|
+----+----+----+
To - имена F1 и F2 новых столбцов или функций -
+----+----+
| F1 | F2 |
+----+----+
| C1 | R11|
+----+----+
| :: | :: |
+----+----+
| :: | :: |
+----+----+
| Cn | R1n|
+----+----+
Я не уверен, будет ли это полезно, но вот оператор выбора, который я сейчас использую для извлечения данных:
SET @name = 'USA';
SET @sql = CONCAT('SELECT ', (SELECT GROUP_CONCAT('`', COLUMN_NAME, '`')
FROM information_schema.COLUMNS
WHERE TABLE_NAME = 'country_birth'
AND COLUMN_NAME NOT IN
('country_code', 'country_name', 'indicator_name',
'indicator_code')),
' FROM country_birth WHERE country_code = "', @name, '"');
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
Что мне нужно добавить или изменить предыдущий оператор Select?