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