ホームページ >データベース >mysql チュートリアル >MySQL データ取得で欠落している日付を入力するにはどうすればよいですか?
日付間のデータの取得: 空のレコードの作成
MySQL では、通常、指定された日付範囲内のデータの選択は BETWEEN 演算子を使用して行われます。ただし、この方法では、データが存在しない日付が欠落する可能性があります。これを解決するには、「カレンダー テーブル」を使用する手法が使用されます。
カレンダー テーブルの概念は、目的の範囲内の日付のシーケンスを含むテーブルを作成することです。これは、次のコードを使用して実現されます:
CREATE TABLE ints (i INTEGER); INSERT INTO ints VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);
このテーブルには、0 から 9 までの数値の範囲が表示されます。カレンダー テーブルを生成するには、int とそれ自体を複数回結合して、日付間隔のリストを作成します。
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
結果は、「2009-06-25」から「2009-06-25」までの一連の日付を含むテーブルです。 「2009年7月4日」。データを取得するために、カレンダー テーブルと元のテーブルを左結合します。
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 中国語 Web サイトの他の関連記事を参照してください。