Bonjour à tous,
Le mieux pour expliquer mon problème est de donner un exemple puisde le soumettre.
table toto
champ id (int)
champ test (enum('1','0'))
champ parent (int)
requete:
ex si parent=1
SELECT id,COUNT(test) as nb FROM toto WHERE parent='1' AND test='1' AND nb>=1 GROUP BY id ORDER BY RAND(nb) LIMIT 1
si ma table contient:
1,1,1
1,1,1
1,1,1
2,0,1
2,1,1
L'id 1 a une force de 3 dans le rand, et l'id 2 a une force de 1
La requete devrait retourner
soit 1,3
soit 2,1
Le but de la manoeuvre est de récupérer 1 di aléaoirement en donnant plus de chance à celui qui a le plus de '1' dans le champ test.
Le problème que je rencontre est que dans la clause WHERE et GROUP BY, nb n'est pas reconnu. Savez vous comment je dois procéder?
Merci pour votre aide précieuse
Partager