Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quel est le meilleur moyen de sélectionner 1000 lignes aléatoires (pas de ligne en double) à partir de mysql ?

Eh bien d'après le commentaire, vous êtes également satisfait d'une réponse théorique.

Si vous avez votre tableau avec toutes les lignes, utilisez array_unique() pour se débarrasser des lignes en double, utilisez shuffle() pour les mélanger et à la fin vous pouvez prendre une tranche avec array_slice() .

MODIF :

Vous pouvez l'améliorer lorsque vous ne sélectionnez déjà pas de lignes en double, vous n'avez alors pas besoin d'utiliser array_unique() . Pour cela, utilisez DISTINCT . Et si vous voulez tout faire dans une requête, vous pouvez faire quelque chose comme ceci :

SELECT DISTINCT column FROM table
ORDER BY RAND()
LIMIT 1000