> 데이터 베이스 > MySQL 튜토리얼 > GROUP_CONCAT을 사용하여 MySQL에서 여러 하위 행을 단일 행으로 결합하려면 어떻게 해야 합니까?

GROUP_CONCAT을 사용하여 MySQL에서 여러 하위 행을 단일 행으로 결합하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2024-11-27 14:14:10
원래의
510명이 탐색했습니다.

How Can I Combine Multiple Child Rows into a Single Row in MySQL Using GROUP_CONCAT?

MySQL에서 통합 보기를 위한 하위 행 결합

문제:

테이블의 여러 하위 행을 다른 테이블의 단일 행은 데이터베이스 관리의 일반적인 작업입니다. 다음 시나리오를 고려하십시오.

  • Ordered_Item과 Ordered_Options라는 두 개의 테이블이 있습니다.
  • Ordered_Item에는 항목 이름이 포함됩니다.
  • Ordered_Options에는 각 항목과 관련된 옵션이 포함됩니다.

원하는 출력은 항목 이름과 해당 항목을 결합한 테이블입니다. Ordered_Options 테이블의 순서가 다른 경우에도 옵션을 특정 순서로 지정합니다.

해결책:

이 작업에 대한 효과적인 접근 방식 중 하나는 MySQL의 GROUP_CONCAT 함수를 사용하는 것입니다. 이 함수를 사용하면 여러 행의 값을 단일 문자열로 연결할 수 있습니다.

다음 쿼리는 GROUP_CONCAT의 사용을 보여줍니다.

SELECT
  Ordered_Item.ID AS `Id`,
  Ordered_Item.Item_Name AS `ItemName`,
  GROUP_CONCAT(Ordered_Options.Value) AS `Options`
FROM
  Ordered_Item
INNER JOIN
  Ordered_Options ON Ordered_Item.ID = Ordered_Options.Ordered_Item_ID
GROUP BY
  Ordered_Item.ID
로그인 후 복사

출력:

이 쿼리는 다음이 포함된 테이블을 반환합니다. 열:

Id ItemName Options
1 Pizza Pepperoni, Extra Cheese
2 Stromboli Extra Cheese

옵션 열은 각 항목의 옵션을 원하는 순서로 통합합니다.

추가 고려 사항:

  • 작성자 기본적으로 MySQL은 GROUP_CONCAT 결과의 최대 길이를 1024자로 제한합니다. 옵션이 이 제한을 초과하는 경우 SET SESSION group_concat_max_len 문을 사용하여 크기를 늘릴 수 있습니다.
  • 출력의 옵션 순서는 쿼리 실행 중 행이 처리되는 순서에 따라 달라질 수 있습니다. 일관된 순서가 중요한 경우 옵션을 검색하는 하위 쿼리에 ORDER BY 절을 사용하는 것이 좋습니다.

위 내용은 GROUP_CONCAT을 사용하여 MySQL에서 여러 하위 행을 단일 행으로 결합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿