mysql实现随机获取几条数据的方法

sql语句有几种写法
1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要获取的数据条数;

2:SELECT *FROM table WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM table ) ORDER BY id LIMIT 想要获取的数据条数;

3:SELECT * FROM table AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM table)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id ASC LIMIT 想要获取的数据条数;

4:SELECT * FROM tableWHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM table))) ORDER BY id LIMIT 想要获取的数据条数;

5:SELECT * FROM table WHERE id >= (SELECT floor( RAND() * ((SELECT MAX(id) FROM table)-(SELECT MIN(id) FROM table)) + (SELECT MIN(id) FROM table))) ORDER BY id LIMIT 想要获取的数据条数;

6: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 想要获取的数据条数;

1的查询时间>>2的查询时间>>5的查询时间>6的查询时间>4的查询时间>3的查询时间,也就是3的效率最高。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容