"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 combinar múltiples filas en una sola fila separada por comas en MySQL?

¿Cómo combinar múltiples filas en una sola fila separada por comas en MySQL?

Publicado el 2025-02-27
Navegar:822

How to Combine Multiple Rows into a Single Comma-Separated Row in MySQL?

mysql: Convertir múltiples filas en una sola fila separada por comas

dentro de una base de datos mySQL, puede encontrar una situación en la que desea condensar múltiples filas en una sola fila, con columnas específicas representadas como valores comerciales. Esto se puede lograr utilizando la función Group_concat, como se demuestra en el siguiente escenario de ejemplo.

escenario de ejemplo:

Considere dos tablas: DISH y DISH_HAS_DISHES, donde tiene todos los platos disponibles, y DISH_HAS_DISHES DEFINES A UNE TO-MANY-MANY. La tabla de platos tiene la siguiente estructura:

DISH:
dish_id   dish_name
1         dish_1
2         dish_2
3         dish_3
4         dish_4

mientras la mesa DISH_HAS_DISHES se ve así:

DISH_HAS_DISHES:
meal_id   dish_id
1         2
1         3
1         4

Objective:

Nuestro objetivo es transformar los datos en un formato donde cada comida tiene una fila correspondiente, enumerando sus ID de plato y nombres como valores separados por comas. La salida deseada es:

meal_id     dish_ids     dish_names
1           2,3,4        dish_2, dish_3, dish_4

Solución:

Para lograr esto, usaremos la función Group_concat, junto con algunas operaciones directas de unión:

SELECT m.meal_id, 
        GROUP_CONCAT(dish_id) AS dish_ids, 
        GROUP_CONCAT(dish_name) AS dish_names
FROM DISH_HAS_DISHES m JOIN DISH d ON (m.dish_id = d.dish_id)
GROUP BY meal_id

en esta consulta:

  • comenzamos por unirnos la tabla DISH_HAS_DISHES (m) con la tabla de platos (d) en la columna DISH_ID.
  • dentro de la instrucción seleccionada, usamos Group_concat para combinar múltiples valores de DISH_ID y DISHNAME. columnas.
  • Finalmente, agrupamos los resultados de la comida_id para obtener una sola fila para cada comida.

al ejecutar esta consulta, obtendremos la salida deseada, donde cada fila representa una comida, sus id de sus platos y sus nombres de platos correspondientes, todos representados como valores separados. Esta técnica es especialmente útil cuando se trabaja con datos tabulares y consolidan información en múltiples filas.

Ú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