MariaDBでPostgreSQLのGENERATE_SERIESを使う
やり方は簡単、MariaDB10.0以降で下記のSQLを実行して「Sequence」というストレージエンジンをインストールするだけ。
INSTALL SONAME "ha_sequence";
これだけでGENERATE_SERIESと同じ動きします。
このような感じで指定した範囲でデータを取得できます。
MariaDB [test]> SELECT seq FROM seq_0_to_10;
+-----+
seq |
+-----+
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
+-----+
11 rows in set (0.00 sec)
ちゃんとステップも使えます。
MariaDB [test]> SELECT seq FROM seq_0_to_10_step_2;
+-----+
seq |
+-----+
0 |
2 |
4 |
6 |
8 |
10 |
+-----+
6 rows in set (0.00 sec)
今まで、ユーザー定義変数を使ったりして面倒だった日付、時間の一覧も簡単に出力できます。
MariaDB [test]> SELECT ('2015-04-01' + INTERVAL seq DAY) AS day FROM seq_0_to_10;
+------------+
day |
+------------+
2015-04-01 |
2015-04-02 |
2015-04-03 |
2015-04-04 |
2015-04-05 |
2015-04-06 |
2015-04-07 |
2015-04-08 |
2015-04-09 |
2015-04-10 |
2015-04-11 |
+------------+
11 rows in set (0.00 sec)
MariaDB [test]> SELECT (CAST('00:00:00' AS time) + INTERVAL 30*seq MINUTE) AS day FROM seq_0_to_10;
+----------+
day |
+----------+
00:00:00 |
00:30:00 |
01:00:00 |
01:30:00 |
02:00:00 |
02:30:00 |
03:00:00 |
03:30:00 |
04:00:00 |
04:30:00 |
05:00:00 |
+----------+
11 rows in set (0.00 sec)
今まで知らなかったけどめっちゃ便利だわー
Source: Sequence -- MariaDB Knowledge Base