MySQL 동적 교차표
문제:
" 방법', '중지', '시간' 등이 있습니다. 목표는 이 데이터를 교차표 형식으로 변환하는 것입니다. 여기서 열은 고유한 "방향" 값을 나타내고 행은 "중지" 값을 나타냅니다. 각 셀에는 해당 "길" 및 "정지" 조합에 대해 기록된 최대 "시간"이 포함됩니다.
동적 솔루션:
MySQL의 제한 사항으로 인해 열 이름과 번호가 지정됩니다. 쿼리 실행 중에 수정되어야 합니다. 이 문제를 극복하려면 두 가지 애플리케이션 기반 접근 방식을 고려하십시오.
옵션 1: 고유 값 쿼리
옵션 2: 행별 처리
구현:
옵션 1의 경우:
$way_array = []; 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`"; $pivotstmt = $pdo->query($pivotsql);
옵션 2의 경우:
$stoparray = []; foreach ($pdo->query("SELECT * FROM `MyTable`") as $row) { $stopkey = $row["stop"]; if (!array_key_exists($stopkey, $stoparray)) { $stoparray[$stopkey] = ["stop"=>$stopkey]; } $waykey = "way_" . $row["way"]; $stoparray[$stopkey][$waykey] = $row["time"]; }
위 내용은 다양한 열 이름을 사용하여 MySQL에서 교차표를 동적으로 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!