Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL избира бързо 10 произволни реда от 600K реда

Страхотна публикация, обработваща няколко случая, от прости, до пропуски, до нееднородни с пропуски.

http://jan.kneschke.de/projects/mysql/order- по-ранд/

За най-общ случай, ето как го правите:

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

Това предполага, че разпределението на идентификаторите е равно и че може да има пропуски в списъка с идентификатори. Вижте статията за по-разширени примери



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разделя изхода от mysqldump на по-малки файлове?

  2. Какви са разликите между INSERT и UPDATE в MySQL?

  3. Съхранение на SHA1 хеш стойности в MySQL

  4. Полетата за дата и час в MySQL и лятно часово време – как да направя справка с допълнителния час?

  5. Код на грешка 1292 - Отсечена неправилна DOUBLE стойност - Mysql