Page 1 sur 1

Réaliser un tirage au sort de n enregistrements

Posté : 14 sept. 2008, 16:38
par jay64
Bonjour,

Voici un exemple pour mieux comprendre :

Imaginons un recordset qui contient 100 enregistrements.
Je voudrais tirer au hazard 5 d'entre eux.
Cela pour ensuite rentrer en contact avec les gagnants et effectuer d'autres traitements.


Ma question est donc la suivante : comment sortir n enregistrements d'une requete qui retourne x résultats ?

Merci !

Posté : 14 sept. 2008, 16:45
par orgerix
Tu peux mettre tes résulats dans un tableau indexé numériquement puis utliser la fonction rand() n fois. Ensuite, il ne reste qu'a extraire les resulatats correspondant aux clefs tirés.

Posté : 14 sept. 2008, 18:06
par jojolapine
Sinon tout en mysql, tu fait comme ceci:

Code : Tout sélectionner

SELECT [...] INTO [...] WHERE [...] ORDER BY RAND() LIMIT(0,5)
;)

Posté : 14 sept. 2008, 19:42
par jay64
Sinon tout en mysql, tu fait comme ceci:

Code : Tout sélectionner

SELECT [...] INTO [...] WHERE [...] ORDER BY RAND() LIMIT(0,5)
;)
ORDER BY RAND ! => Je ne connaissais pas ! SUPER comme solution, je teste ça de suite !

Posté : 14 sept. 2008, 19:47
par jojolapine
Par contre niveau performance, je suis pas sûr que ce soit le top, mais bon le tirage au sort, n'est pas fait toutes les minutes ;)

Posté : 15 sept. 2008, 09:32
par doctorrock
array_rand aussi