Dans SQLite, vous pouvez utiliser le random() fonction pour générer un nombre pseudo-aléatoire.
C'est très bien, mais la valeur renvoyée est comprise entre -9223372036854775808 et +9223372036854775807.
Et si vous avez besoin d'un nombre aléatoire entre 0 et 10 ? Ou dites, 1 et 100 ?
Heureusement, vous pouvez le faire en combinant random() avec abs() et l'opérateur modulo.
Nombre aléatoire entre 0 et 10
Vous pouvez utiliser le code suivant pour générer un nombre pseudo-aléatoire entre 0 et 10.
SELECT abs(random() % 10); Voici un exemple de sélection de plusieurs valeurs aléatoires.
SELECT
abs(random() % 10) AS R1,
abs(random() % 10) AS R2,
abs(random() % 10) AS R3; Résultat :
R1 R2 R3 ---------- ---------- ---------- 2 8 5
Augmenter la portée
Bien sûr, vous pouvez changer la valeur à tout ce que vous voulez (en supposant qu'elle se trouve dans le random() plage de valeurs possibles).
Le voici à nouveau avec la plage augmentée entre 0 et 100.
SELECT
abs(random() % 100) AS R1,
abs(random() % 100) AS R2,
abs(random() % 100) AS R3; Résultat :
R1 R2 R3 ---------- ---------- ---------- 76 60 85
Nombre aléatoire entre 1 et 10
Si vous ne voulez pas que zéro fasse partie des résultats possibles, vous pouvez utiliser la méthode suivante.
Le code suivant génère un nombre pseudo-aléatoire entre 1 et 10.
SELECT abs(random()) % (10 - 1) + 1; Voici un exemple de sélection de plusieurs valeurs aléatoires.
SELECT
abs(random()) % (10 - 1) + 1 AS R1,
abs(random()) % (10 - 1) + 1 AS R2,
abs(random()) % (10 - 1) + 1 AS R3; Résultat :
R1 R2 R3 ---------- ---------- ---------- 2 1 8