MySQL で PostgreSQL の generate_series 関数と同じことをしようとすると、
SET @num:= 0; SELECT @num:=@num+1 FROM `information_schema`.COLUMNS LIMIT 4;
でもこれでは SET 文と2つの文になってしまって mybatis での実行では都合が悪い。
SELECT a.VC FROM ( SELECT 0 AS VC FROM DUAL WHERE (@num:=1-1) * 0 UNION ALL SELECT @num:=@num+1 FROM information_schema.COLUMNS LIMIT 4 ) a ;
これで、PostgreSQL の
SELECT GENERATE_SERIES(1, 4)
と同じことができる。
これを'0'埋めの文字列にしたければ、
SELECT LPAD(a.VC, 4, '0') AS UCD FROM ( SELECT 0 AS VC FROM DUAL WHERE (@num:=1-1) * 0 UNION ALL SELECT @num:=@num+1 FROM information_schema.COLUMNS LIMIT 4 ) a ;
先日投稿の PostgreSQL の generate_series - Oboe吹きプログラマの黙示録
で書いたように、、
日付 2022-12-15 から 2022-12-25 までDATE型で結果を出力する
SELECT date_add('2020-12-15', interval a.VC - 1 day) AS V_DATE FROM ( SELECT 0 AS VC FROM DUAL WHERE (@num:=1-1) * 0 UNION ALL SELECT @num:=@num+1 FROM information_schema.COLUMNS LIMIT 11 ) a ;