mysql 随机分页的优化

SET @a=(SELECT FLOOR(RAND() *(SELECT COUNT(*) FROM table_a)/10000)); # 取随机页

SELECT b.* 
FROM 
(
    SELECT recordid
    FROM 
    (
        SELECT recordid FROM table_a 
        LIMIT @a,10000 # 取随机页id,
        # 此处注意,limit 只能用常量,所以@a传递不了。只能和上面查询分别执行两次
    ) AS a 
    ORDER BY RAND()
    LIMIT 10 #页内二次随机
) a 
JOIN table_a b #取数据
    ON a.recordid=b.recordid
;

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页