データ レポートのための効率的な日付生成
MySQL では、指定された範囲内で一連の日付を生成することは、包括的なデータ レポートを作成するために不可欠です。一般的なアプローチの 1 つは、多数の日付を含むテーブルを作成することですが、これは効率的な解決策ではありません。
この問題に対処するには、一時テーブルの作成または変数の設定が制限されているシナリオを検討してください。今年など、特定の期間内の日付を生成するには、次の MySQL クエリが効果的な解決策を提供します。
select * from (select adddate('1970-01-01',t4*10000 + t3*1000 + t2*100 + t1*10 + t0) gen_date from (select 0 t0 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0, (select 0 t1 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1, (select 0 t2 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2, (select 0 t3 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3, (select 0 t4 union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v where gen_date between '2017-01-01' and '2017-12-31'
このクエリは、さまざまな値 (0 ~ 9) を組み合わせて、ネストされた一連のサブクエリを使用します。 1970 年 1 月 1 日から 2017 年 12 月 31 日までの日付を作成します。次に、adddate() 関数を使用して、これらの日付を目的の日付にシフトします。
このアプローチを利用すると、一時テーブルや変数の割り当てを必要とせずに、データのレポートと分析用に一連の日付を効率的に生成できます。
以上が一時テーブルや変数を使用せずに、MySQL でデータレポート用の日付を効率的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。