sql >> Databáze >  >> RDS >> Mysql

MySQL rychle vybere 10 náhodných řádků ze 600 000 řádků

Skvělý post, který zvládne několik případů, od jednoduchých, přes mezery až po nerovnoměrné s mezerami.

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

V nejobecnějším případě to uděláte následovně:

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

To předpokládá, že distribuce id je stejná a že v seznamu id mohou být mezery. Pokročilejší příklady naleznete v článku



  1. Výpočet klouzavého průměru MySQL?

  2. Převést „datetime“ na „smalldatetime“ v SQL Server (příklady T-SQL)

  3. Vytvořte datum z roku a čísla týdne v MSSQL

  4. Je nutné DbCommand po použití zlikvidovat?