In SQLite können Sie random()
verwenden Funktion zum Generieren einer Pseudozufallszahl.
Das ist großartig, aber der zurückgegebene Wert liegt zwischen -9223372036854775808 und +9223372036854775807.
Was ist, wenn Sie eine Zufallszahl zwischen 0 und 10 benötigen? Oder sagen wir, 1 und 100?
Glücklicherweise können Sie dies tun, indem Sie random()
kombinieren mit abs()
und der Modulo-Operator.
Zufallszahl zwischen 0 und 10
Sie können den folgenden Code verwenden, um eine Pseudozufallszahl zwischen 0 und 10 zu generieren.
SELECT abs(random() % 10);
Hier ist ein Beispiel für die Auswahl mehrerer zufälliger Werte.
SELECT
abs(random() % 10) AS R1,
abs(random() % 10) AS R2,
abs(random() % 10) AS R3;
Ergebnis:
R1 R2 R3 ---------- ---------- ---------- 2 8 5
Erhöhen Sie die Reichweite
Natürlich können Sie den Wert beliebig ändern (vorausgesetzt, er befindet sich innerhalb von random()
Bereich möglicher Werte).
Hier ist es wieder mit einem erweiterten Bereich zwischen 0 und 100.
SELECT
abs(random() % 100) AS R1,
abs(random() % 100) AS R2,
abs(random() % 100) AS R3;
Ergebnis:
R1 R2 R3 ---------- ---------- ---------- 76 60 85
Zufallszahl zwischen 1 und 10
Wenn Sie nicht möchten, dass Null Teil der möglichen Ergebnisse ist, können Sie die folgende Methode verwenden.
Der folgende Code generiert eine Pseudo-Zufallszahl zwischen 1 und 10.
SELECT abs(random()) % (10 - 1) + 1;
Hier ist ein Beispiel für die Auswahl mehrerer zufälliger Werte.
SELECT
abs(random()) % (10 - 1) + 1 AS R1,
abs(random()) % (10 - 1) + 1 AS R2,
abs(random()) % (10 - 1) + 1 AS R3;
Ergebnis:
R1 R2 R3 ---------- ---------- ---------- 2 1 8