J'ai environ 300 enregistrements dans une table dans la base de données mysql. Et j'ai une obligation d'aller chercher 40 enregistrements aléatoires avec une requête. Comment écrire la requête? besoin d'aide merci.comment récupérer des nombres aléatoires de lignes à partir de la base de données mysql?
Répondre
Pour une petite table aime le vôtre, il devrait suffire avec ceci:
SELECT * FROM table ORDER BY RAND() LIMIT 40;
Notez que cela ne convient pas pour les grandes tables depuis MySQL devra faire un scan de table et pour toutes les lignes de la table en raison de l'utilisation de ORDER BY RAND()
. Pour les grandes tables, vous devrez implémenter cela principalement dans le code de l'application, en gardant une trace des lignes que vous avez déjà et en générant des identifiants aléatoires à récupérer.
Vous devez utiliser rand()
avec order by
comme ceci:
SELECT field1, field2
FROM tableName
ORDER BY RAND()
LIMIT 40
Notez que ce n'est pas une solution rapide, mais il fonctionne très bien pour seulement 300 dossiers
SELECT [rows]
FROM [table]
ORDER BY RAND()
LIMIT 40
SELECT * FROM table ORDER BY RAND() LIMIT 40
order by rand()
peut provoquer des problèmes de performance, essayez plutôt de le faire de la façon suivante:
// what NOT to do:
$r = mysql_query("SELECT username FROM user ORDER BY RAND() LIMIT 1");
// much better:
$r = mysql_query("SELECT count(*) FROM user");
$d = mysql_fetch_row($r);
$rand = mt_rand(0,$d[0] - 1);
$r = mysql_query("SELECT username FROM user LIMIT $rand, 1");
vous devriez utilisateur RAND()
dans la clause WHERE
mais vous faites d'abord fragment 40/nombre de lignes dans le tableau
ex:
SELECT * FROM [TABLE_NAME] WHERE RAND()< 0.0005;
- 1. Résultats des lignes de la base de données aléatoires
- 2. Récupérer du texte à partir d'une base de données MySQL
- 3. Comment extraire des entrées aléatoires de plusieurs tables mysql directement à partir de la base de données?
- 4. Récupérer uniquement 1 ligne de données à partir de la base de données MYSQL
- 5. mysql lignes aléatoires
- 6. Sélection de lignes aléatoires dans MySQL
- 7. comment faire un nom à partir de nombres aléatoires?
- 8. Extraction de données aléatoires à partir de la base de données de Cassandra
- 9. Comment remplir une colonne de base de données avec des nombres aléatoires
- 10. Récupérer un nombre spécifique de lignes aléatoires à partir de CoreData
- 11. génération de nombres aléatoires
- 12. Probabilité de nombres aléatoires
- 13. mysql: récupérer la base de données à partir de fichiers frm
- 14. générateur de nombres aléatoires
- 15. affichant des nombres aléatoires
- 16. Meilleur moyen de récupérer des données hiérarchiques à partir de la base de données
- 17. Sélection de lignes à partir de MySQL
- 18. tableau de nombres aléatoires
- 19. MySQL - Obtenir des informations à partir de la base de données des itinéraires de bus
- 20. Récupérer des données à partir de Aspnet_Profile
- 21. autoriser l'utilisateur à partir de la base de données mysql
- 22. mysql sélectionner les données à partir de plusieurs lignes
- 23. PHP MySQL sélectionner des lignes aléatoires
- 24. nombres aléatoires dans java
- 25. Comment récupérer de grandes données à partir de la base de données Oracle à l'aide de vbscript
- 26. Générateur de nombres aléatoires Crappy
- 27. Récupérer des données de la base de données
- 28. Drupal: importation de milliers de lignes à partir d'une base de données mysql. Facile?
- 29. c - générateur de nombres aléatoires
- 30. TableViewController - Récupérer des données de la base de données
http://stackoverflow.com/search? q = rand + mysql essaye de regarder dans ces sujets. Votre réponse est là – Tim