집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 빈 행을 포함하는 날짜 사이의 데이터를 선택하는 방법은 무엇입니까?
MySQL에서 빈 행이 있는 날짜 사이의 데이터 선택
데이터베이스에서 지정된 날짜 사이의 데이터를 검색하는 것은 일반적인 작업입니다. 그러나 날짜 범위 내에 빈 행도 포함해야 하는 경우에는 어려울 수 있습니다. 이 기사에서는 MySQL에서 이 문제를 해결하는 기술을 살펴보겠습니다.
데이터와 날짜가 포함된 행이 있는 "tbl"이라는 테이블을 생각해 보세요.
2009-06-25 75 2009-07-01 100 2009-07-02 120
선택할 일반적인 쿼리 '2009-06-25'와 '2009-07-01'이라는 두 날짜 사이의 데이터는 be:
SELECT data FROM tbl WHERE date BETWEEN '2009-06-25' AND '2009-07-01'
그러나 이 쿼리는 이 범위 내의 빈 날짜를 모두 누락합니다. 이를 포함하기 위해 MySQL은 "캘린더 테이블"이라는 강력한 개념을 제공합니다.
캘린더 테이블은 일련의 날짜를 포함하는 도우미 테이블입니다. 이 가이드에서 설명하는 기술을 사용하여 쉽게 만들 수 있습니다.
-- create some infrastructure CREATE TABLE ints (i INTEGER); INSERT INTO ints VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9); -- only works for 100 days, add more ints joins for more SELECT cal.date, tbl.data FROM ( SELECT '2009-06-25' + INTERVAL a.i * 10 + b.i DAY as date FROM ints a JOIN ints b ORDER BY a.i * 10 + b.i ) cal LEFT JOIN tbl ON cal.date = tbl.date WHERE cal.date BETWEEN '2009-06-25' AND '2009-07-01';
이 쿼리는 '2009-06-25'부터 '2009-07-01'까지의 모든 행을 반환합니다. '데이터' 값이 0입니다. 하위 쿼리를 정기적으로 업데이트되는 달력 테이블로 대체하여 이 기술을 최적화할 수 있습니다.
위 내용은 MySQL에서 빈 행을 포함하는 날짜 사이의 데이터를 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!