Jump to content

Nombre aléatoire via sql


sandrinoo

Recommended Posts

Bonjour à tous et à toutes,

 

Voilà mon souci (du jour), je bute là dessus depuis le début d'aprèm : j'ai besoin d'insérer via le sql de phpmyadmin un nombre aléatoire compris entre 00 et 99 (soit 00, 01, 02 jusqu'à 98, et 99).

 

j'avais pensé mettre un truc du style :

UPDATE XXXX SET nombre = ROUND( RAND() * 9 )

Mais ce code ne me génère que de 0 à 9. Peut-on le doubler en le concaténant comme ceci pour obtenir ce que je veux :

set nombre = ROUND( RAND() * 9 ).ROUND( RAND() * 9 )

Visiblement non car ça marche pas chez moi...

 

Si vous avez d'autres idées, je suis preneuse

Link to comment
Share on other sites

merci Aenoa. Oui effectivement !

 

1/ mais les 04 s'enregistre en 4. Ca dois être ma base qui est paramétrée comme ça. Je sais qu'en mettant des quotes sur un nombre avec un 0 devant c'est bon.

Bref peut-on glisser des quotes dans le code que tu m'as donné ?

 

2/ Le problème aussi c'est que j'aurais besoin également d'un nombre de 18 chiffres style nombre =ROUND( RAND() * 999999999999999999 ) et là ça bloque également car cela me génère dans ma base mysql des nombres style  1.0984465583213108e16. 

Donc j'en reviens toujours à ma problématique de départ. Une concaténation de ROUND( RAND() * 99 ).ROUND( RAND() * 99 ) est-elle possible ?

Link to comment
Share on other sites

Concernant le 0 précédent pour les nombres <10, la concatenation peut etre une solution oui.

SELECT CONCAT(ROUND(RAND() * 9),ROUND(RAND() * 9));

Tu peux aussi utiliser LPAD.

SELECT LPAD( ROUND(RAND() * 99), 2, '0');

Pour le nombre à 18 chiffres, même popotte:

SELECT ROUND(RAND() * 999999999999999999);

et avec des leading 0,

SELECT LPAD(ROUND(RAND() * 999999999999999999), 18, '0');

 

Bonne journée!

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...