Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL wählt schnell 10 zufällige Zeilen aus 600.000 Zeilen aus

Ein großartiger Beitrag, der mehrere Fälle behandelt, von einfach über Lücken bis hin zu uneinheitlich mit Lücken.

http://jan.kneschke.de/projects/mysql/order- by-rand/

Für die meisten allgemeinen Fälle gehen Sie wie folgt vor:

SELECT name
  FROM random AS r1 JOIN
       (SELECT CEIL(RAND() *
                     (SELECT MAX(id)
                        FROM random)) AS id)
        AS r2
 WHERE r1.id >= r2.id
 ORDER BY r1.id ASC
 LIMIT 1

Dies setzt voraus, dass die Verteilung der IDs gleich ist und dass es Lücken in der ID-Liste geben kann. Weitere Beispiele finden Sie im Artikel