PHP试题网_中国最大的免费网络PHP试题测试平台,PHP试卷调查,PHP试卷模板、PHP考试测验

1)使用join 和 rand() 耗时 0.009

SELECT
    *FROM
    `t_topic` AS t1JOIN (    SELECT
        ROUND(            RAND() * (
                (SELECT MAX(id) FROM `t_topic`) - (SELECT MIN(id) FROM `t_topic`)
            ) + (SELECT MIN(id) FROM `t_topic`)
        ) AS id
) AS t2WHERE
    t1.id >= t2.idORDER BY
    t1.id
LIMIT 10;


 

2) 下面这条比上面那个还要慢几秒

SELECT * FROM `t_topic` 
WHERE id >= (SELECT floor( RAND() * ((SELECT MAX(id) FROM `t_topic`)-(SELECT MIN(id) FROM `t_topic`)) + (SELECT MIN(id) FROM `t_topic`)))  
ORDER BY id LIMIT 10;



3)或者使用下面这个也可以测试也是 耗时0.0012

SELECT
    *FROM
    `t_topic`WHERE
    id >= (        SELECT
            floor(                RAND() * (SELECT MAX(id) FROM `t_topic`)
            )
    )ORDER BY
    id
LIMIT 10;


 



作者:OK兄 浏览次数:10

登 录