Maison > Article > développement back-end > Comment obtenir plusieurs éléments de données de manière aléatoire dans php mysql
Comment obtenir aléatoirement plusieurs éléments de données dans php mysql : 1. Obtenez les données via "SELECT * FROM tablename ORDER BY RAND() LIMIT" ; 2. Obtenez le nombre de données spécifié via "ORDER BY t1.id ASC LIMIT" ; , etc. .
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur Dell G3.
Comment php mysql obtient-il aléatoirement plusieurs éléments de données ?
Mysql réalise la méthode d'obtention aléatoire de plusieurs éléments de données
Il existe plusieurs façons d'écrire des instructions SQL :
1 : SELECT * FROM tablename ORDER BY RAND () LIMIT Vous voulez obtenir le nombre d'éléments de données ;
2 : SELECT *FROM `table` WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` ) ORDER BY id LIMIT Les éléments de données que vous souhaitez obtenir Number;
3 : SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2 WHERE t1.id >= t2 .id
ORDER BY t1.id ASC LIMIT Le nombre d'éléments de données que vous souhaitez obtenir ;
4 : SELECT * FROM `table`WHERE id >= (SELECT floor( RAND() * (SELECT MAX(id) FROM `table`))) ORDER BY id LIMIT Le nombre d'éléments de données que vous souhaitez obtenir ;
5 : SELECT * FROM `table` WHERE id >= (SELECT étage( RAND() * ((SELECT MAX(id ) FROM `table`)-(SELECT MIN(id) FROM `table`)) + (SELECT MIN(id) FROM `table`))) ORDER BY id LIMIT Le nombre d'éléments de données que vous souhaitez obtenir ;
6 :SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id ) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT Le nombre d'éléments de données que vous souhaitez obtenir
Commentaires :
Mesuré 380 000 données, 10 éléments sélectionnés au hasard 1 peuvent être sélectionnés au hasard et le temps d'exécution est de 1 à 2 secondes. 2. Aucune réponse après avoir couru pendant plus de 20 secondes. J'ai essayé 3 fois. 3 Les 10 données prises sont des identifiants consécutifs et l'exécution prend 0,001 seconde. 4 Sélectionnez au hasard 10 éléments avec des ID compris entre 1 et 4 000, exécutez-les pendant 0,003 seconde et essayez plus de 10 fois. 5 Sélectionnez au hasard 10 éléments avec des ID compris entre 1 et 4 000, exécutez-les pendant 0,003 seconde et essayez plus de 10 fois. 6 Les 10 données prises sont des identifiants consécutifs et l'exécution prend 0,001 seconde.
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!