OVH Cloud OVH Cloud

[MySQL] Select Aléatoire paramétré ...

2 réponses
Avatar
E7
Bonjour,

J'ai une table avec les champs suivants :

ID (PK)
NAME
TRANSLATE
RANKING


Le champs RANKING contient une valeur de 1 à 10.
ce champs correspond à une importance relative de la ligne. (0 pas important
et 10 très important)

Je voudrais récupérer de manière aléatoire 100 enregistrements de cette
table mais j'aimerais que les lignes avec 10 en RANKING aient 10 fois plus
de probabilité de sortir que les lignes à 1 ...

Pour le moment ma requête est :

SELECT * FROM matable ORDER BY RAND() LIMIT (0,100);

Comme vous le voyez, le champs RANKING n'est pas du tout utilisé et je ne
vois pas comment l'utiliser (en SQL)

Si vous avez des pistes, je suis preneur. Si il faut le faire dans le code,
je le ferais mais vu le grand nb de lignes dans cette table (Plus de 300 000
lignes) j'aimerais éviter de récupérer des données inutiles.

D'avance merci pour vos réponses.
Reno.

2 réponses

Avatar
E7
Bah je suis bête ...


suffit de faire

SELECT * FROM matable ORDER BY (rand()*ranking) DESC LIMIT(0,100);

Merci :o)
Avatar
.
Pas idiot, je retiens dans un coin :-)

"E7" <E7 @ expo7.com> a écrit dans le message de
news:414ff5fd$0$25710$
Bah je suis bête ...


suffit de faire

SELECT * FROM matable ORDER BY (rand()*ranking) DESC LIMIT(0,100);

Merci :o)