小编典典

MySQL从60万行中快速选择10条随机行

sql

如何最好地编写一个查询,从总共60万行中随机选择10行?


阅读 138

收藏
2021-05-05

共1个答案

小编典典

一个出色的职位,处理从简单到有缺口,再到有缺口不均匀的几种情况。

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

对于大多数一般情况,这是您的操作方法:

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

这假定id的分布是相等的,并且id列表中可能存在间隙。请参阅文章以获取更多高级示例

2021-05-05