J'utilise la recherche de texte intégral pour tirer des lignes.
Je commande les lignes en fonction du score (ORDER BY SCORE), puis des 20 premières lignes (LIMIT 20), je veux rand (RAND) l'ensemble de résultats.LIMIT puis RAND plutôt que RAND puis LIMIT
Donc, pour tout terme de recherche spécifique, je veux montrer au hasard 5 des 20 premiers résultats.
Ma solution est base- de code où je mets le top 20 dans un tableau, puis sélectionnez au hasard 5.
Y at-il moyen sql de le faire?
RAND évalue-t-il différemment pour chaque ligne de MySQL? (Je demande parce que dans SQL Server vous auriez à utiliser NEWID) – gbn
+1 L'autre solution de contournement est une double requête imbriquée (@gbn: oui c'est le cas) – Andomar
@gbn: 'ORDER BY RAND() combiné avec LIMIT est utile pour sélectionner un échantillon aléatoire à partir d'un ensemble de lignes »à partir de http://dev.mysql.com/doc/refman/5.0/fr/fonctions-mathématiques.html#fonction_rand –