«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как динамически объединить все столбцы MySQL?

Как динамически объединить все столбцы MySQL?

Опубликовано 8 ноября 2024 г.
Просматривать:613

How to Dynamically Concatenate All MySQL Columns?

Динамическое объединение всех столбцов 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;
Заявление о выпуске Эта статья перепечатана по адресу: 1729757658. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3