从mysql中随机读取多条记录
2015-12-17 10:57
627 查看
今日工作中需要一些随机数,当APP请求接口时,从数据库中随机读取多条数据给APP,经网上查询实践,大致以下三种查询:
1.随机读取连续多条记录。经过实践,可以随机读取多条连续的数据记录,里头取值的一般都是主键ID来进行最大值、最小值的读取:
2.随机多条数据。以下两种都是随机读取数据,查询数据速度、随机范围都基本相差不大
1.随机读取连续多条记录。经过实践,可以随机读取多条连续的数据记录,里头取值的一般都是主键ID来进行最大值、最小值的读取:
SELECT * FROM b_user_send_rose_log AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM b_user_send_rose_log)-(SELECT MIN(id) FROM b_user_send_rose_log))+(SELECT MIN(id) FROM b_user_send_rose_log)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 5;
2.随机多条数据。以下两种都是随机读取数据,查询数据速度、随机范围都基本相差不大
SELECT * FROM b_user_send_rose_log WHERE id >= ((SELECT MAX(id) FROM b_user_send_rose_log)-(SELECT MIN(id) FROM b_user_send_rose_log)) * RAND() + (SELECT MIN(id) FROM b_user_send_rose_log) LIMIT 5; SELECT * FROM b_user_send_rose_log WHERE id>=(SELECT floor(RAND() * ((SELECT MAX(id) FROM b_user_send_rose_log)-(SELECT MIN(id) FROM b_user_send_rose_log)) + (SELECT MIN(id) FROM b_user_send_rose_log))) ORDER BY id LIMIT 5;
相关文章推荐
- MySQL-Double Write
- mysql 优化
- 修改MySQL字符集
- Mysql中文乱码问题完美解决方案【需要在my.cnf文件中设置client和mysqld的default-character-set=utf8,建数据库和表的时候也需要制定好编码】
- 详解mysql int类型的长度值问题
- MySQL基础安全注意细节
- MySQL性能分析
- mysql命令大全
- MySQL的子查询中FROM和EXISTS子句的使用教程
- MySQL 中随机抽样:order by rand limit 的替代方案
- mysql基础
- Navicat For MySQL
- MySQL的启动程序
- MySQL 如何在线备份历史表
- MySQL 修改字段类型或长度
- Mysql 使用ibd数据文件进行数据恢复 (以及数据移动) 1067的解决办法
- [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
- Windows下mysql忘记密码的解决方法
- mysql左外连接,右外连接,全连接
- MySQL和SQL入门(1-5)