[1]普通方法, 效率太低
SELECT * FROM table ORDER BY rand() LIMIT 10;
[2] JOIN的方法:
SELECT *
FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`) - (SELECT MIN(id) FROM `table`)) + (SELECT MIN(id) FROM `table`)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id LIMIT 10;
高效随机查询MySQL
本文介绍两种从MySQL数据库中高效抽取随机记录的方法。一种是普通的直接使用RAND()函数进行排序,但这种方法效率较低;另一种是通过JOIN操作结合RAND()生成随机ID进行筛选,此方法能显著提高查询效率。

1838

被折叠的 条评论
为什么被折叠?



