집 >데이터 베이스 >MySQL 튜토리얼 >정수 사용자 ID를 사용하여 MySQL에서 동적 피벗 테이블을 만드는 방법은 무엇입니까?
MySQL의 동적 피벗 테이블
데이터베이스 작업 시 피벗 테이블을 생성하여 여러 열의 데이터를 요약하는 것이 유용한 경우가 많습니다. 그러나 열 이름이 동적이면 문제가 될 수 있습니다. 이 문서에서는 특히 사용자 ID가 정수인 경우 MySQL에서 동적 피벗 테이블을 생성하는 방법을 살펴봅니다.
사용자가 제공한 예에서는 사용자 ID가 정수인 경우 쿼리가 실패했지만 다음인 경우에는 정상적으로 작동했습니다. 그것은 문자열이었습니다. 해당 값이 열 이름으로 직접 사용되었기 때문에 문제가 발생했습니다. 이 문제를 해결하려면 값을 백틱(`)으로 묶어 유효한 열 이름을 만들어야 합니다.
예를 들어 다음 대신:
max(case when user_id = 1 then score end) as 1
수정된 구문은 다음과 같습니다.
max(case when user_id = 1 then score end) as `1`
또한 열을 동적으로 선택할 때 백틱도 포함되어야 합니다. 수정된 쿼리는 다음과 같습니다.
SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'max(case when user_id = ''', user_id, ''' then score end) AS `', user_id, '`' ) ) INTO @sql FROM measure2; SET @sql = CONCAT('SELECT inspection_date, ', @sql, ' FROM measure2 GROUP BY inspection_date'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
이러한 조정을 수행하면 사용자 ID가 정수인 경우에도 피벗 테이블을 성공적으로 생성할 수 있습니다.
위 내용은 정수 사용자 ID를 사용하여 MySQL에서 동적 피벗 테이블을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!