sql >> Database >  >> RDS >> Mysql

MySQL selecteert snel 10 willekeurige rijen uit 600K rijen

Een geweldige post die verschillende gevallen behandelt, van eenvoudig tot hiaten, tot niet-uniform met hiaten.

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

Voor de meeste algemene gevallen is dit hoe u het doet:

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

Dit veronderstelt dat de verdeling van id's gelijk is en dat er gaten in de id-lijst kunnen zijn. Zie het artikel voor meer geavanceerde voorbeelden



  1. ERD-notaties in gegevensmodellering

  2. Records dupliceren om gaten tussen datums te vullen

  3. Hoe de meest recente set gedateerde records uit een mysql-tabel te selecteren?

  4. Kan database niet openen in lees-/schrijfmodus