[Résolu] RAND et Mysql

WRInaute impliqué
Bonjour tout le mode,

Voilà je cherche à updater ma table membres et assigner une valeur différente (comprise entre 70 et 100) à tous les enregistrements de cette table. J'ai d'abord pensé à la fonction RAND() avec la requête :
Code:
UDPATE table SET colonne = ROUND(RAND()*100))
Ca marche, mais ca me donne une valeur entre 0 et 100. Quelqu'un aurait-il une idée pour forcer la valeur à être comprise entre 70 et 100 avec la fonction RAND (ou autre permettant un update différent de chacun des enregistrements) ?

Merci d'avance
 
G
Grantome
Guest
http://fr.php.net/rand

Je ne sais pas si UPDATE accepte RAND.
Sinon:

tu prend le nb d'enregistrement de la table et tu fait une boucle ou tu assigne à la valeur à Updater le rand.
 
WRInaute impliqué
Les fonctions PHP ne sont pas toujours similaires aux fonctions MySQL, ca ne marche bien sûr pas pour la fonction RAND de MySQL ;)
J'y avais pensé mais non .... :(
 
WRInaute impliqué
yazerty > Nos messages se sont croisés :)
Grantome > Sur des milliers d'enregistrements, sûrement pas ^^, la requête SQL que j'ai montré ci-dessus fonctionne très bien, mais me sort une valeur entre 0 et 100, pas entre 70 et 100 :)
 
WRInaute passionné
mowmow a dit:
yazerty > Nos messages se sont croisés :)
Grantome > Sur des milliers d'enregistrements, sûrement pas ^^

Et mon edit et ce message aussi :P.

Et si tu le faisais en local et réinjecter le tout ultérieurement dans ta base distante ?
 
WRInaute impliqué
yazerty a dit:
mowmow a dit:
yazerty > Nos messages se sont croisés :)
Grantome > Sur des milliers d'enregistrements, sûrement pas ^^

Et mon edit et ce message aussi :P.

Et si tu le faisais en local et réinjecter le tout ultérieurement dans ta base distante ?

Trop compliqué 8O

Rahhh j'arrive à faire ca avec des valeurs de 1 à 100 mais pas de 70 à 100 !! Y'aurais pas une astuce mathématique quelconque ? :(
 
WRInaute passionné
Salut,

J'suis ptete à coté de la plaque car j'ai pas suivi, mais pourquoi pas concaténer du php. Ca mais la même valeur à tous ?

"UDPATE table SET colonne=".rand(70,100);


Sinon tu fais un rand et ton round en SQL sur 30 et tu ajoutes 70 ^^
 
WRInaute impliqué
:o ..........

Pendant un instant j'ai cru la solution arrivée, mais je veux une valeur différente pour chaque enregistrement. Or avec la fonction RAND, c'est fait automatiquement :(
 
WRInaute impliqué
1- tu cree une table avec un champ en cle primaire (int 11) et autoincrement
2- tu fait un insert de tes elements dans cette table , l'autoincrement se chargera de ton probleme.
[EDIT]
J'avais pas vu cette histoire de fourchette de valeur necessitant, mais si c'est pour ajouter des membres dans une table existante, en re-injectant tout, cela devrait aller
 
WRInaute impliqué
J'essayais justement de m'éviter la création d'une table secondaire ou réinjection quelconque, avec RAND qui prend une valeur différente à chaque fois, j'ai même pas à me soucier de mon UPDATE, tous mes enregistrements se retrouvent avec une valeur différente
 
WRInaute impliqué
mowmow a dit:
avec RAND qui prend une valeur différente à chaque fois, j'ai même pas à me soucier de mon UPDATE, tous mes enregistrements se retrouvent avec une valeur différente
Mouaif... tu cherches la complication. L'autoincrement est la pour ca :)
 
WRInaute impliqué
Je vois pas ce que tu veux dire par là ? Tu me proposes quoi concrètement car je n'ai pas tout compris ^^
 
WRInaute passionné
J'suis désolé mais le RAND en SQL est différent à chaque update...

UPDATE table SET champ=(rand(5)*30)+70

Teste tu veras
 
WRInaute impliqué
dorian53 a dit:
J'suis désolé mais le RAND en SQL est différent à chaque update...

UPDATE table SET champ=(rand(5)*30)+70

Teste tu veras

Je suis d'accord, mais lorsque l'on passe un argument à RAND, il te retourne toujours le même nombre ;)
 
WRInaute impliqué
Voilà ca marche ! ^^ Grâce à toi dorian53 :p
En fait il fallait multiplier le RAND() par 30 puis ajouter 70 merci beaucoup ! Avec le 5 comme argument ca fixe le rand au même, donc il suffisait de l'enlever ! Merci beaucoup ^^
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut