문제:
다차원의 데이터가 포함된 테이블이 있는데 다음을 수행하려고 합니다. 차원 수를 미리 알지 못한 채 동적으로 교차표 테이블(피벗 테이블)을 생성합니다.
해결책:
피벗 쿼리에 대한 열 수를 정의해야 합니다. 쿼리 준비 시간에. 동적 교차 분석을 수행하려면 애플리케이션 코드 작성과 관련된 두 가지 옵션이 있습니다.
옵션 1: 고유 값 쿼리 및 동적 SQL 구성
예:
<code class="php">foreach ($pdo->query("SELECT DISTINCT `way` FROM `MyTable`") as $row) { $way = (int) $row["way"]; $way_array[] = "MAX(IF(`way`=$way, `time`)) AS way_$way"; } $pivotsql = "SELECT stop, " . join(", ", $way_array) . "FROM `MyTable` GROUP BY `stop`";</code>
옵션 2: 행별로 데이터 쿼리 및 후처리
예:
<code class="php">$stoparray = array(); foreach ($pdo->query("SELECT * FROM `MyTable`") as $row) { $stopkey = $row["stop"]; if (!array_key_exists($stopkey, $stoparray)) { $stoparray[$stopkey] = array("stop"=>$stopkey); } $waykey = "way_" . $row["way"]; $stoparray[$stopkey][$waykey] = $row["time"]; }</code>
위 내용은 MySQL에서 교차표 테이블을 동적으로 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!