Как перевести MySQL Dynami c Оператор SELECT - PullRequest
0 голосов
/ 27 апреля 2020

Если у меня есть неизвестное количество столбцов и только одна строка данных, и я использую 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...