ラベル 乱数 の投稿を表示しています。 すべての投稿を表示
ラベル 乱数 の投稿を表示しています。 すべての投稿を表示

2023年12月23日土曜日

SQLite3 指定した範囲からランダム値を取得する(random())

概要

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

2023年12月18日月曜日

SQLite3 ランダム値を取得する(random())

概要

SQLite3でランダム値を取得するにはrandom()関数を使用する。

構文


random()
                

-9223372036854775808 から 9223372036854775807 までの間の数字を一つランダムに取得する。

実行例


sqlite> select random();
3156263457218046093
sqlite> select random();
-6586383623159055896
sqlite> select random();
1694675256990323389
sqlite> select random();
-3966622455784875739
                

マイナスが不要であればabs()関数を使って 絶対値にしてやればいい。


sqlite> select abs(random());
6506298542183177295
sqlite> select abs(random());
5614770480249323342
sqlite> select abs(random());
4451325482105913098
sqlite> select abs(random());
8599032043310149984
                

参考URL