Динамическое объединение всех столбцов MySQL
В MySQL объединение всех столбцов с использованием подстановочного знака * не поддерживается. Вместо этого вам необходимо явно указать имя каждого столбца в функциях CONCAT() или GROUP_CONCAT().
Явное объединение столбцов:
Вы можете использовать CONCAT() функция для объединения определенных столбцов:
SELECT CONCAT(col1, col2, col3, ...)
FROM yourtable;
Или используйте CONCAT_WS() для объединения столбцов с указанным разделителем, пропуская нулевые значения:
SELECT CONCAT_WS(',', col1, col2, col3, ...)
FROM yourtable;
Динамическое объединение столбцов:
Чтобы избежать указания имен столбцов вручную, вы можете использовать динамический запрос для получения всех имен столбцов из таблицы Information_schema.columns:
SELECT `column_name`
FROM `information_schema`.`columns`
WHERE `table_schema` = DATABASE()
AND `table_name` = 'yourtable';
Затем используйте GROUP_CONCAT() для объединения этих имен столбцов:
GROUP_CONCAT(CONCAT('`', column_name, '`'))
В результате будет получен список имен столбцов в кавычках, разделенных запятыми, например как:
`col1`,`col2`,`col3`,`col4`,...
С помощью этого вы можете создать динамический запрос для объединения всех столбцов:
SET @sql = CONCAT(
'SELECT CONCAT_WS(\'\',',
GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name),
') AS all_columns FROM yourtable;'
);
Наконец, выполните динамический запрос:
PREPARE stmt FROM @sql;
EXECUTE stmt;
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3