Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1648 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  comment fonctionne ORDER BY RAND() ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment fonctionne ORDER BY RAND() ?

n°2025714
Misssardon​ik
prévisible a posteriori
Posté le 28-09-2010 à 16:48:54  profilanswer
 

Bonjour,
 
J'ai lu sur plusieurs sites que faire des "ORDER BY RAND()" n'était pas conseillé niveau performances, mais malgré que j'ai à peu près compris ce que ça fait, je n'arrive pas à comprendre comment cette fonction fonctionne ( :o ).
De ce que j'ai compris, RAND() renvoit un float entre 0 et 1. D'un autre côté et toujours d'après mes (maigres) connaissances, après un ORDER BY on attend soit le nom d'une colonne, soit un entier qui correspondra au numéro d'une colonne. Je ne comprends donc pas ce qu'un float entre 0 et 1 vient faire là-dedans.
Merci pour toute explication :)


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
mood
Publicité
Posté le 28-09-2010 à 16:48:54  profilanswer
 

n°2025717
pataluc
Posté le 28-09-2010 à 16:59:11  profilanswer
 

salut,
 
ca peut servir à mélanger les résultats...
 
++

n°2025723
Misssardon​ik
prévisible a posteriori
Posté le 28-09-2010 à 17:11:52  profilanswer
 

oui je sais bien que ça sert à ça, la question est plutôt de savoir comment ça marche...


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
n°2025724
pataluc
Posté le 28-09-2010 à 17:15:16  profilanswer
 

ben ca génère un nombre aléatoire pour chaque ligne, et ca trie selon ce chiffre... tu dis que order by attends un nom de colonne ou un entier... je ne vois pas pourquoi ce ne serait pas un float.

Message cité 1 fois
Message édité par pataluc le 28-09-2010 à 17:16:12
n°2025725
Misssardon​ik
prévisible a posteriori
Posté le 28-09-2010 à 17:23:24  profilanswer
 

pataluc a écrit :

tu dis que order by attends un nom de colonne ou un entier... je ne vois pas pourquoi ce ne serait pas un float.

 

parce que (toujours d'après ce que j'ai compris), quand on lui fournit un entier, par exemple 2, ça trie le résultat suivant la deuxième colonne. Dans cette optique, je ne comprends pas bien ce que peut vouloir dire trier selon la 0.12303371180131ème colonne par exemple.


Message édité par Misssardonik le 28-09-2010 à 17:23:37

---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
n°2025726
pataluc
Posté le 28-09-2010 à 17:29:01  profilanswer
 

oui, mais la tu ne trie pas selon un entier, mais selon un critère qui est rand(). rand() se comporte comme un nom de colonne. un nom de colonne qui renvoie des valeurs aléatoires.

n°2025731
Misssardon​ik
prévisible a posteriori
Posté le 28-09-2010 à 17:38:52  profilanswer
 

pataluc a écrit :

oui, mais la tu ne trie pas selon un entier, mais selon un critère qui est rand(). rand() se comporte comme un nom de colonne. un nom de colonne qui renvoie des valeurs aléatoires.


 
tu veux dire une colonne supplémentaire qui ajoute à chaque tuple de la table un nombre aléatoire ? je veux bien croire que ça fasse ça, mais est-ce documenté quelque part ? d'après toutes les définitions de RAND et de ORDER BY que j'ai pû trouver, rien ne laisse penser qu'on peut s'en servir de cette manière, c'est ça qui me gène...  
En fait la question que je me pose c'est : qui a eu l'idée en premier d'utiliser ORDER BY avec RAND(), et comment a t-il eu l'idée ?


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
n°2025736
pataluc
Posté le 28-09-2010 à 17:42:15  profilanswer
 

http://dev.mysql.com/doc/refman/5. [...] ction_rand
 
si ca:

Code :
  1. SELECT champ1
  2. FROM table1
  3. ORDER BY rand()

ca te parait pas clair, est-ce que ca:

Code :
  1. SELECT champ1, rand() AS alea
  2. FROM table1
  3. ORDER BY alea

c'est mieux? parce que c'est la même chose (ou presque).

n°2025915
Misssardon​ik
prévisible a posteriori
Posté le 29-09-2010 à 13:26:06  profilanswer
 

oui ok ça me paraît plus clair écrit comme ça, merci :)


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  comment fonctionne ORDER BY RAND() ?

 

Sujets relatifs
JS pour afficher/masquer div ne fonctionne pasinclude ne fonctionne pas PHP
Petit souci : Switch javascript -> "default" ne fonctionne pas....Lien qui ne fonctionne pas!!truc incompréhensible!
[Joomla] Module "ANNONCES" modifier ORDER BYz-index ne fonctionne pas ><
Else if qui ne fonctionne pas...Propriété background qui ne fonctionne pas
Plus de sujets relatifs à : comment fonctionne ORDER BY RAND() ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR