概要
SQLite3でランダム値を取得するにはrandom()
関数を使用する。
範囲を指定するのであれば、指定したい範囲の「間隔」で割って、指定したい範囲の「最小値」を足せばいい。
構文
select abs(random()) % RANGE + MIN
実行例
指定した範囲内からランダム値を取得したい場合は剰余(割り算の余り)を使う。
例えば 0~4 の範囲からランダムに値を取得したい場合は 範囲 0,1,2,3,4 の個数 5 で割った余りを使う。
sqlite> select abs(random()) % 5;
1
sqlite> select abs(random()) % 5;
3
sqlite> select abs(random()) % 5;
3
sqlite> select abs(random()) % 5;
4
sqlite> select abs(random()) % 5;
2
sqlite> select abs(random()) % 5;
0
sqlite> select abs(random()) % 5;
2
1~5 の範囲からランダムに値を取得したい場合はこれに+1してやればいい。
sqlite> select abs(random()) % 5 + 1;
5
sqlite> select abs(random()) % 5 + 1;
1
sqlite> select abs(random()) % 5 + 1;
4
sqlite> select abs(random()) % 5 + 1;
1
sqlite> select abs(random()) % 5 + 1;
5
sqlite> select abs(random()) % 5 + 1;
2
sqlite> select abs(random()) % 5 + 1;
3
参考URL
-
公式のrandom()に関するドキュメント
https://www.sqlite.org/lang_corefunc.html#random