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:
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.
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