2010-12-06 11 views
2

J'essaie de sélectionner les trois lignes qui ont les scores les plus élevés. Il est évident que je peux utiliser une des choses simples comme:MYSQL Ligne aléatoire/question de commande

SELECT * FROM myTable ORDER BY myscore DESC LIMIT 3; 

Mais ce que je veux aussi est un moyen facile pour cela revenir une seule de ces trois lignes au hasard. Normalement je fais juste un ORDER BY rand(), mais quel est le moyen le plus propre d'ajouter la contrainte qu'il doit être aléatoire parmi les 3 premières lignes?

Merci!

Répondre

4
SELECT * FROM 
(
SELECT * FROM myTable ORDER BY myscore DESC LIMIT 3 
) Top3 
ORDER BY RAND() LIMIT 1;