>  기사  >  데이터 베이스  >  MySQL에서 여러 행을 쉼표로 구분된 단일 행으로 가져오는 방법은 무엇입니까?

MySQL에서 여러 행을 쉼표로 구분된 단일 행으로 가져오는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-14 13:49:02392검색

How to Fetch Multiple Rows as a Single Comma-Separated Row in MySQL?

MySQL에서 여러 행을 쉼표로 구분된 단일 행으로 가져오기

문제 설명:

두 개의 테이블이 있습니다. "DISH" 및 "DISH_HAS_DISHES", 여기서 요리는 일대다 종속성과 관련됩니다. 목표는 특정 형식(쉼표로 구분된 각 식사의 요리 ID 및 이름 목록)으로 두 테이블 모두에서 데이터를 검색하는 것입니다.

GROUP_CONCAT 함수를 사용하여 제안된 솔루션:

MySQL은 지정된 구분 기호를 기반으로 여러 행을 연결할 수 있는 GROUP_CONCAT 함수를 제공합니다. 이 기능을 활용하면 원하는 출력을 얻을 수 있습니다.

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

설명:

  1. "DISH_HAS_DISHES"(m) 및 "DISH"( d) 일반 dessert_id 필드를 기반으로 한 테이블.
  2. GROUP_CONCAT(dish_id)를 사용하여 각 식사에 대한 요리 ID를 쉼표로 구분된 문자열로 연결합니다. 이를 Dish_ids 열에 저장합니다.
  3. 마찬가지로 GROUP_CONCAT(dish_name)을 사용하여 요리 이름을 쉼표로 구분된 문자열로 연결하고 이를 Dish_names 열에 저장합니다.
  4. GROUP BY 식사_Id는 다음을 보장합니다. 결과는 식사 ID별로 그룹화되어 각 식사에 대한 단일 행이 됩니다.

이 쿼리는 원하는 출력 형식을 생성해야 합니다.

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

위 내용은 MySQL에서 여러 행을 쉼표로 구분된 단일 행으로 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.