"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > MySQL의 여러 행을 단일 쉼표로 구분 된 행에 결합하는 방법은 무엇입니까?

MySQL의 여러 행을 단일 쉼표로 구분 된 행에 결합하는 방법은 무엇입니까?

2025-02-27에 게시되었습니다
검색:449

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

예제 시나리오 :

는 모든 사용 가능한 모든 요리를 보유하고있는 Dish_has_dishes와 Dish_has_dishes는 접시와의 관계를 정의합니다. 식기 테이블에는 다음 구조가 있습니다 :

접시 : dish_id dish_name 1 dish_1 2 dish_2 3 dish_3 4 dish_4

dish_has_dishes 테이블은 다음과 같습니다.
DISH:
dish_id   dish_name
1         dish_1
2         dish_2
3         dish_3
4         dish_4
dish_has_dishes : seal_id dish_id 1 2 1 3 1 4

DISH_HAS_DISHES:
meal_id   dish_id
1         2
1         3
1         4

우리의 목표는 각 식사에 해당 행이있는 형식으로 변환하는 것입니다. 원하는 출력은 다음과 같습니다 1 2,3,4 dish_2, dish_3, dish_4

솔루션 :

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

우리는 간단한 조인 작업과 함께 Group_Concat 함수를 사용합니다.

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

우리는 ship_id 열에서 Dish_has_dishes 테이블 (m)에 접합하여 시작합니다. 칼럼.
  • 마지막으로, 우리는 각 식사마다 단일 행을 얻기 위해 Meal_id로 결과를 그룹화합니다.

는 원하는 출력을 얻을 수 있습니다. 이 기술은 테이블 데이터를 사용하고 여러 행에서 정보를 통합 할 때 특히 유용합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3