I SQLite kan du bruge random()
funktion til at generere et pseudo-tilfældigt tal.
Det er fantastisk, men den returnerede værdi er mellem -9223372036854775808 og +9223372036854775807.
Hvad hvis du har brug for et tilfældigt tal mellem 0 og 10? Eller siger 1 og 100?
Heldigvis kan du gøre dette ved at kombinere random()
med abs()
og modulo-operatoren.
Tilfældigt tal mellem 0 og 10
Du kan bruge følgende kode til at generere et pseudo-tilfældigt tal mellem 0 og 10.
SELECT abs(random() % 10);
Her er et eksempel på valg af flere tilfældige værdier.
SELECT
abs(random() % 10) AS R1,
abs(random() % 10) AS R2,
abs(random() % 10) AS R3;
Resultat:
R1 R2 R3 ---------- ---------- ----------2 8 5
Forøg rækkevidden
Selvfølgelig kan du ændre værdien til hvad som helst du vil (forudsat at den er inden for random()
række mulige værdier).
Her er det igen med intervallet øget til mellem 0 og 100.
SELECT
abs(random() % 100) AS R1,
abs(random() % 100) AS R2,
abs(random() % 100) AS R3;
Resultat:
R1 R2 R3 ---------- ---------- ----------76 60 85
Tilfældigt tal mellem 1 og 10
Hvis du ikke ønsker, at nul skal være en del af de mulige resultater, kan du bruge følgende metode.
Følgende kode genererer et pseudo-tilfældigt tal mellem 1 og 10.
SELECT abs(random()) % (10 - 1) + 1;
Her er et eksempel på valg af flere tilfældige værdier.
SELECT
abs(random()) % (10 - 1) + 1 AS R1,
abs(random()) % (10 - 1) + 1 AS R2,
abs(random()) % (10 - 1) + 1 AS R3;
Resultat:
R1 R2 R3 ---------- ---------- ----------2 1 8