"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo concatenar dinámicamente todas las columnas de MySQL?

¿Cómo concatenar dinámicamente todas las columnas de MySQL?

Publicado el 2024-11-08
Navegar:483

How to Dynamically Concatenate All MySQL Columns?

Concatenar dinámicamente todas las columnas de MySQL

En MySQL, no se admite la concatenación de todas las columnas utilizando el comodín *. En su lugar, debe especificar explícitamente el nombre de cada columna en las funciones CONCAT() o GROUP_CONCAT().

Concatenación explícita de columnas:

Puede usar CONCAT() función para concatenar columnas específicas:

SELECT CONCAT(col1, col2, col3, ...)
FROM yourtable;

O use CONCAT_WS() para concatenar columnas con un separador específico, omitiendo valores nulos:

SELECT CONCAT_WS(',', col1, col2, col3, ...)
FROM yourtable;

Concatenación dinámica de columnas:

Para evitar especificar manualmente los nombres de las columnas, puede utilizar una consulta dinámica para recuperar todos los nombres de las columnas de la tabla information_schema.columns:

SELECT `column_name`
FROM `information_schema`.`columns`
WHERE `table_schema` = DATABASE()
  AND `table_name` = 'yourtable';

Luego, use GROUP_CONCAT() para combinar estos nombres de columnas:

GROUP_CONCAT(CONCAT('`', column_name, '`'))

Esto dará como resultado una lista separada por comas de nombres de columnas entre comillas, como como:

`col1`,`col2`,`col3`,`col4`,...

Con esto, puedes crear una consulta dinámica para concatenar todas las columnas:

SET @sql = CONCAT(
  'SELECT CONCAT_WS(\'\',',
  GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name),
  ') AS all_columns FROM yourtable;'
);

Finalmente, ejecute la consulta dinámica:

PREPARE stmt FROM @sql;
EXECUTE stmt;
Declaración de liberación Este artículo se reimprime en: 1729757658 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3