J'ai cherché mais je n'ai pas trouvé de solution efficace. Besoin d'un peu d'aide ici.
Supposons que j'ai une table avec plus de 100 enregistrements, je dois d'abord trouver les 20 premiers enregistrements dans un certain ordre, puis je dois choisir au hasard 5 enregistrements parmi ces 20 enregistrements. C'est ma requête,
SELECT a FROM tableA WHERE b IN ( SELECT b FROM tableA WHERE c="x" ORDER BY d DESC LIMIT 20 ) ORDER BY RAND() LIMIT 5;
Faites-moi savoir comment le corriger. Merci.
La requête interne sélectionne 20 utilisateurs triés par ID, la requête externe utilise la fonction RAND() pour trier aléatoirement, avec une limite de 5 :)