Salut
Est-il possible d'écrire la requête SQL qui retourne les lignes de la table dans un ordre aléatoire à chaque fois que l'exécution de la requête?
- Comment sélectionner aléatoirement des lignes en SQL ? (5 réponses )
Réponses
Trop de publicités?Bien que pas le plus efficace:
SELECT quote FROM quotes ORDER BY RAND()
C'est une meilleure solution http://www.titov.net/2005/09/21/do-not-use-order-by-rand-or-how-to-get-random-rows-from-table/
(Malgré les balises) la question elle-même est ambiguë sur le serveur de base de données est utilisé de sorte que vous pourriez vous retrouver ici, désireux de répondre à un autre serveur. Pour les autres serveurs de base de données (MySQL, PostgreSQL,IBM DB2 et Oracle) jetez un oeil à http://www.petefreitag.com/item/466.cfm
Pour être efficace, et au hasard, il pourrait être préférable d'avoir deux requêtes différentes.
Quelque chose comme...
SÉLECTIONNEZ table_id DE table
Ensuite, dans la langue de votre choix, choisissez un id aléatoire, puis tirez sur la ligne de données.
SELECT * from table where table_id = $rand_id
Mais ce n'est pas vraiment une bonne idée si vous vous attendez à avoir beaucoup de lignes dans la table. Il serait mieux si vous mettez une sorte de limite à ce que vous choisissez au hasard. Pour les publications, peut-être choisir au hasard à partir de seulement les articles publiés dans la dernière année.