Di SQLite, Anda dapat menggunakan random()
berfungsi untuk menghasilkan bilangan pseudo-acak.
Ini bagus, tetapi nilai yang dikembalikan adalah antara -9223372036854775808 dan +9223372036854775807.
Bagaimana jika Anda membutuhkan nomor acak antara 0 dan 10? Atau katakan, 1 dan 100?
Untungnya Anda dapat melakukan ini dengan menggabungkan random()
dengan abs()
dan operator modulo.
Angka Acak Antara 0 dan 10
Anda dapat menggunakan kode berikut untuk menghasilkan angka pseudo-acak antara 0 dan 10.
SELECT abs(random() % 10);
Berikut ini contoh pemilihan beberapa nilai acak.
SELECT
abs(random() % 10) AS R1,
abs(random() % 10) AS R2,
abs(random() % 10) AS R3;
Hasil:
R1 R2 R3 ---------- ---------- ---------- 2 8 5
Meningkatkan Jangkauan
Tentu saja, Anda dapat mengubah nilainya menjadi apa pun yang Anda inginkan (dengan asumsi nilai tersebut berada di dalam random()
rentang nilai yang mungkin).
Ini dia lagi dengan rentang yang ditingkatkan menjadi antara 0 dan 100.
SELECT
abs(random() % 100) AS R1,
abs(random() % 100) AS R2,
abs(random() % 100) AS R3;
Hasil:
R1 R2 R3 ---------- ---------- ---------- 76 60 85
Angka Acak Antara 1 dan 10
Jika Anda tidak ingin nol menjadi bagian dari kemungkinan hasil, Anda dapat menggunakan metode berikut.
Kode berikut menghasilkan angka pseudo-acak antara 1 dan 10.
SELECT abs(random()) % (10 - 1) + 1;
Berikut ini contoh pemilihan beberapa nilai acak.
SELECT
abs(random()) % (10 - 1) + 1 AS R1,
abs(random()) % (10 - 1) + 1 AS R2,
abs(random()) % (10 - 1) + 1 AS R3;
Hasil:
R1 R2 R3 ---------- ---------- ---------- 2 1 8