Est-il possible d'extraire des lignes aléatoires de la table X où flags == 0? En utilisant MySql et C#Random() Dans MySQL?
Répondre
SELECT *
FROM X
WHERE flags = 0
ORDER BY rand()
LIMIT 1
Cette récupère 1 ligne aléatoire. Remplacer 1 par N pour obtenir N lignes aléatoires. Mise en garde: Comme d'autres l'ont souligné, cela peut être lent car il nécessite un balayage de table complet. J'avais l'habitude de le faire avec DB2, où cela fonctionnait parfaitement pour des tables avec des centaines de milliers de lignes, mais selon le lien dans tereško's answer, MySQL semble se dégrader beaucoup plus rapidement.
Si je ne me trompe pas, cette ligne devrait-elle toujours commander par première ou deuxième rangée? Rand() retournera toujours un nombre entre 0 ou 1 .. donc l'ordre sera par la colonne 0 ou 1? Pas sûr –
sélectionnez Rand() me obtient 0.NUM MAIS en utilisant 'ORDER BY rand()' obtient des résultats complètement aléatoires (je viens de tester avec 4 lignes) –
Selon le manuel de MySQL: Renvoie une valeur à virgule flottante aléatoire v dans l'intervalle 0 <= v <1,0. Donc, non seulement retourner 0 ou 1, mais n'importe quelle valeur entre (virgule flottante). –
Vous ne devriez jamais utiliser ORDER BY RAND()
. Cela devient vraiment très lent à mesure que la taille de la table augmente. Au lieu de cela, vous devriez read this article.
Si vous avez peur irrationnelle de l'apprentissage, voici la solution là qui ferait ce que vous demandez:
SELECT
X.x_id,
X.foobar
FROM X
JOIN (
SELECT CEIL(RAND()*(SELECT MAX(x_id) FROM X)) AS x_id
) AS Choices
USING (x_id)
WHERE X.x_id >= Choices.x_id
AND X.flags = 0
ORDER BY X.x_id LIMIT 1;
"Jamais, jamais" est un peu extrême, mais bon article quand même. – jordanbtucker
- 1. Random Records Mysql PHP
- 2. Seeding random dans django
- 3. Ensemencement SQLite random()
- 4. Commande de requête MySQL par random et un champ?
- 5. SQL Server Random Sort
- 6. Random Linq Query
- 7. Comment obtenir Random Number
- 8. Java: Random setSeed
- 9. AS3 random .swf chargement
- 10. Exception Random NHibernate IndexOutOfRange
- 11. Random WordPress Admin 404s
- 12. iPhone SDK Random Numbers
- 13. Picking Random Names
- 14. Random Number Generator
- 15. Random CSS via JS
- 16. Solaris dev/random
- 17. Problème avec Random et Threads dans .NET
- 18. Random TransformerException, comment le résoudre?
- 19. iphone: random EXC_BAD_ACCESS avec NSURLConnection
- 20. Comment réparer la valeur produite par Random?
- 21. Le constructeur Random() n'est pas visible
- 22. C++ Random Seed, objets globaux et SDL_Threads
- 23. Random en 2 cycles, dois-je réinitialiser?
- 24. Random in python 2.5 ne fonctionne pas?
- 25. générateur de nombres aléatoires dev/random
- 26. Random Number Generator ne fonctionne pas
- 27. Aide avec random - serveur sql 2008 requête
- 28. LGPL Apprentissage avec Random Forest - C++
- 29. Trier les sphinx de pensée par attribut AND @random?
- 30. Encapsulating boost :: random pour la facilité d'utilisation pour remplacer rand()
Voulez-vous retourner un nombre aléatoire de lignes, ou un nombre fixe de lignes sélectionnés au hasard ? – JohnFx