一連の日付の生成 (重複しないアプローチ)
特定の範囲内で一連の日付を作成することは、さまざまなプログラミング アプリケーション。 MySQL は、これを実現するためのいくつかの方法を提供します。
特に禁止されている一時テーブルの作成や変数設定などの制限に直面した場合の 1 つの効率的な解決策は、自己結合クエリを利用することです。このアプローチでは、次のコード スニペットに示すように、指定された期間内の日付のリストが生成されます。
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'
このクエリは、'2017-01-01' から '2017-12 までの一連の日付を生成します。 adddate() 関数と、日、月、年を表すさまざまなサブクエリを使用して日付値を操作することで、-31' を取得します。
このアプローチでは、特に一時テーブルの作成や変数設定が実行不可能な状況で、日付の範囲を生成するための簡潔で効率的な方法です。
以上が一時テーブルや変数を使用せずに、MySQL で重複しない一連の日付を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。