mysql实现随机获取几条数据的方法
2016-02-03 18:30
731 查看
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
`table`WHERE 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的效率最高。
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
`table`WHERE 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的效率最高。
相关文章推荐
- 由浅入深探究 MySQL索引结构原理、性能分析与优化
- MySQL性能优化的最佳20+条经验
- MySQL 5.6 & 5.7最优配置模板
- MySQL 机制图、innodb存储引擎图
- MySQL配置文件详解
- 生产库MySQL配置文件my.cnf详解
- 配置MySQL GTID 主从复制
- [故障及解决]window下,mysql的root密码的修改
- MySQL5.7 的 JSON 实现
- Mysql错误问题记录
- 生产库MySQL配置文件my.cnf详解
- 企业高并发的解决方案之mysql分库主从切换
- mysql delete数据时报Error Code 1175
- win7 安装mysql 5.7.9记录
- MySQL 5.7.9 ZIP 免安装版的配置
- 关于MySQL+jsp+servlets实例----jstl标签中boolean值的获取问题
- HIVE与mysql
- How to change data dir of mysql?
- 数据库之mac上mysql root密码忘记或权限错误的解决办法
- 数据库之Mac下Mysql命令全集