MySQL: 여러 행을 단일 쉼표로 구분된 행으로 변환
MySQL 데이터베이스 내에서 다음을 수행하려는 상황이 발생할 수 있습니다. 여러 행을 단일 행으로 압축하고 특정 열은 쉼표로 구분된 값으로 표시됩니다. 이는 다음 예제 시나리오에서 설명한 대로 GROUP_CONCAT 함수를 활용하여 달성할 수 있습니다.
예시 시나리오:
DISH와 DISH_HAS_DISHES라는 두 테이블을 고려해 보세요. 여기서 DISH는 사용 가능한 모든 요리, DISH_HAS_DISHES는 DISH 간의 일대다 관계를 정의합니다. DISH 테이블의 구조는 다음과 같습니다.
DISH: dish_id dish_name 1 dish_1 2 dish_2 3 dish_3 4 dish_4
DISH_HAS_DISHES 테이블은 다음과 같습니다.
DISH_HAS_DISHES: meal_id dish_id 1 2 1 3 1 4
목표:
우리의 목표 데이터를 각 식사에 해당하는 행이 있고 요리 ID와 이름이 쉼표로 구분된 값으로 나열되는 형식으로 데이터를 변환하는 것입니다. 원하는 출력은 다음과 같습니다.
meal_id dish_ids dish_names 1 2,3,4 dish_2, dish_3, dish_4
해결책:
이를 달성하기 위해 몇 가지 간단한 JOIN 작업과 함께 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
이 쿼리에서:
실행하여 이 쿼리를 사용하면 각 행이 식사, 요리 ID 및 해당 요리 이름을 나타내는 원하는 출력을 얻을 수 있으며 모두 쉼표로 구분된 값으로 표시됩니다. 이 기술은 표 형식 데이터로 작업하고 여러 행에 걸쳐 정보를 통합할 때 특히 유용합니다.
위 내용은 MySQL에서 여러 행을 쉼표로 구분된 단일 행으로 결합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!