>  기사  >  데이터 베이스  >  MySQL에서 각 식사에 대해 쉼표로 구분된 요리 ID와 이름을 검색하는 방법은 무엇입니까?

MySQL에서 각 식사에 대해 쉼표로 구분된 요리 ID와 이름을 검색하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-09 10:21:02289검색

How to Retrieve Comma-Separated Dish IDs and Names for Each Meal in MySQL?

MySQL의 여러 행에서 쉼표로 구분된 값 검색

이 시나리오에는 DISH와 DISH_HAS_DISHES라는 두 개의 테이블이 있습니다. - 대 다 관계. DISH에는 요리가 포함되고, DISH_HAS_DISHES에는 식사와 요리 간의 관계가 저장됩니다. 귀하의 목표는 각 식사에 쉼표로 구분된 요리 ID 및 요리 이름 목록이 있는 형식으로 데이터를 검색하는 것입니다.

이를 달성하려면 MySQL의 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

이 쿼리에서:

  • GROUP_CONCAT(dish_id)는 요리 ID를 쉼표로 구분된 단일 문자열로 연결합니다. 이를 요리 이름 별칭에 할당합니다.
  • GROUP_CONCAT(dish_name)도 마찬가지로 요리 이름을 연결합니다.

GROUP BY 절은 결과를 식사_ID별로 그룹화하여 쉼표로 구분된 값이 다음과 같도록 합니다. 각 식사에 따라 그룹화됩니다.

이 쿼리의 출력은 세 개의 열이 있는 테이블이 됩니다.

  • meal_Id: 식사 ID.
  • dish_ids: 쉼표 -식사와 관련된 요리 ID의 구분된 목록.
  • dish_names: 식사와 관련된 쉼표로 구분된 요리 이름 목록.

이렇게 하면 원하는 결과를 얻을 수 있습니다. 각 식사에는 쉼표로 구분된 단일 문자열로 된 해당 요리 ID와 이름이 있습니다.

위 내용은 MySQL에서 각 식사에 대해 쉼표로 구분된 요리 ID와 이름을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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