SQLiteでは、random()
を使用できます 疑似乱数を生成する関数。
これはすばらしいですが、返される値は-9223372036854775808から+9223372036854775807の間です。
0〜10の乱数が必要な場合はどうなりますか?または、1と100と言いますか?
幸い、random()
を組み合わせることでこれを行うことができます abs()
を使用 およびモジュロ演算子。
0から10までの乱数
次のコードを使用して、0から10までの疑似乱数を生成できます。
SELECT abs(random() % 10);
複数のランダムな値を選択する例を次に示します。
SELECT
abs(random() % 10) AS R1,
abs(random() % 10) AS R2,
abs(random() % 10) AS R3;
結果:
R1 R2 R3 ---------- ---------- ---------- 2 8 5
範囲を広げる
もちろん、値を任意の値に変更できます(random()
内にあると仮定します 可能な値の範囲)。
ここでも、範囲が0〜100に増加しています。
SELECT
abs(random() % 100) AS R1,
abs(random() % 100) AS R2,
abs(random() % 100) AS R3;
結果:
R1 R2 R3 ---------- ---------- ---------- 76 60 85
1から10までのランダムな数字
考えられる結果にゼロを含めたくない場合は、次の方法を使用できます。
次のコードは、1から10までの疑似乱数を生成します。
SELECT abs(random()) % (10 - 1) + 1;
複数のランダムな値を選択する例を次に示します。
SELECT
abs(random()) % (10 - 1) + 1 AS R1,
abs(random()) % (10 - 1) + 1 AS R2,
abs(random()) % (10 - 1) + 1 AS R3;
結果:
R1 R2 R3 ---------- ---------- ---------- 2 1 8