집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 쿼리에서 누락된 날짜를 처리하는 방법은 무엇입니까?
MySQL 쿼리에서 데이터 공백을 메우는 방법
이 질문은 MySQL에서 쿼리할 때 데이터 공백이 발생할 수 있는 일반적인 문제를 탐구합니다. 특정 날짜. 사용자의 기존 쿼리는 날짜 기반 지표를 검색하지만 누락된 날짜에 대한 데이터는 포함하지 않습니다.
더미 행 소스를 사용하여 데이터 간격 채우기
데이터 간격을 채우려면 , 솔루션에는 "날짜"라는 도우미 테이블을 만드는 것이 포함됩니다. 이 테이블에는 원하는 시작부터 종료 범위까지의 모든 날짜가 포함되어 있습니다. 그런 다음 날짜 테이블과 메시지 테이블 사이에 LEFT JOIN이 수행됩니다.
수정된 쿼리는 다음과 같습니다.
SELECT d.dt AS date, COUNT(*) AS total, SUM(attitude = 'positive') AS positive, SUM(attitude = 'neutral') AS neutral, SUM(attitude = 'negative') AS negative FROM dates d LEFT JOIN messages m ON m.posted_at >= d.dt AND m.posted_at < d.dt + INTERVAL 1 DAYS AND spam = 0 AND duplicate = 0 AND ignore = 0 GROUP BY d.dt ORDER BY d.dt
설명:
더미 행 소스 사용의 대안
MySQL은 일련의 날짜를 생성하는 내장 함수가 없다는 점에서 독특합니다. 그러나 다른 데이터베이스 시스템에서 사용할 수 있는 몇 가지 대체 접근 방식이 있습니다.
위 내용은 MySQL 쿼리에서 누락된 날짜를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!