sakaikさんのブログで今月の日付一覧を得るクエリを読んでいて、ここで紹介されているクエリが手元で実行できなかったので、メモ。
原因は手元の環境が8.0.17でVALUES()関数がなかったことが原因。
よく見るとvalues()関数でテーブルを作って、それを自己結合しつつ出力を作ってソートしている。
再帰CTEでシーケンスが作れるので、それを使っても良いかもなと思い、復習がてら書いてみました。
with recursive rec(V, D) as ( select 1, cast(date_format(@dt, '%Y-%m-01') as date) union all select V+1, date_add(D, interval +1 day) from rec where D < last_day(@dt) ) select D as `DATE` from rec; …[さらに読む]