집 >데이터 베이스 >MySQL 튜토리얼 >내 데이터를 재구성하기 위해 MySQL에서 열의 피벗을 어떻게 해제할 수 있습니까?
MySQL 데이터 재구성: 열 확장
테이블 데이터의 형태를 변경해야 하는 경우 열 피벗 해제가 필요합니다. 이 기술은 열을 행으로 변환하여 보다 유연한 데이터 표현을 제공합니다. MySQL은 명시적인 확장 기능을 제공하지 않지만 영리한 쿼리 구성을 통해 동일한 효과를 얻을 수 있습니다.
방법 1: UNION ALL을 사용하여 쿼리
한 가지 방법은 여러 SELECT 문의 결과를 함께 추가하는 UNION ALL 쿼리를 사용하는 것입니다. 이 예에서는 확장해야 하는 각 열에 대해 별도의 SELECT 문을 만듭니다.
<code class="language-sql">select id, 'a' col, a value from yourtable union all select id, 'b' col, b value from yourtable union all select id, 'c' col, c value from yourtable</code>
이 쿼리는 각 행이 열 값 쌍을 나타내는 새 테이블을 작성합니다. 결과 테이블의 레이아웃은 다음과 같습니다.
ID | col | value |
---|---|---|
1 | a | a1 |
1 | b | b1 |
1 | c | c1 |
2 | a | a2 |
2 | b | b2 |
2 | c | c2 |
방법 2: CROSS JOIN 사용
또 다른 접근 방식은 여러 테이블의 데카르트 곱을 생성하는 CROSS JOIN을 사용하는 것입니다. 테이블을 열 이름이 포함된 테이블과 결합하면 다음을 얻을 수 있습니다.
<code class="language-sql">select t.id, c.col, case c.col when 'a' then a when 'b' then b when 'c' then c end as data from yourtable t cross join ( select 'a' as col union all select 'b' union all select 'c' ) c</code>
이 쿼리는 UNION ALL 쿼리와 동일한 출력을 생성하므로 추가 분석이나 데이터 조작을 위한 유연한 데이터 표현을 제공합니다.
MySQL에서 이러한 전개 기술을 구현하면 데이터를 더 쉽게 탐색할 수 있는 형식으로 재구성하여 데이터에서 의미 있는 통찰력을 효과적으로 추출할 수 있습니다.
위 내용은 내 데이터를 재구성하기 위해 MySQL에서 열의 피벗을 어떻게 해제할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!