我在做一个随机出题的小应用,需要在mysql数据库的题库表里随机选出任意条数据作为
题目,每条数据为一道题目,从网上查了很多资料,基本上有两种,一种是使用 ORDER BY rand()语句,这个语句可以实现取任意条数据,但是官网提示数据量大时内存消耗会很大,查询会很慢,另一种是SELECT
table. *
FROM
(SELECT
ROUND(RAND() * (SELECT
MAX(id)
FROM
table)) random_num,
@num:=@num + 1
FROM
(SELECT @num:=0) AS a, table
LIMIT N) AS b,
table AS t
WHERE
b.random_num = t.id;
这种语句有一个问题,就是我想选出20条数据,有时候会返回19条,就是会出现返回数据不够的情况,请问各位大神有什么好办法没?最好返回的数据可以不按自增长id排序,题目顺序需要打乱。
如何从mysql数据库中随机获取任意条数据?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答
相关推荐 更多相似问题
点击登录
提问题
悬赏问题
- ¥15 SQL 表中 考勤记录的组合查询
- ¥15 Power pivot无法刷新数据
- ¥15 刚入职被要求写这种文档,应该如何下手
- ¥15 最优经济尺寸设计问题
- ¥15 从多元正态分布中生成3维样本
- ¥15 GEO下载数据的处理报错 :函数‘Meta’标签‘"data.frame"’找不到继承方法,如何解决?
- ¥15 android object box 一个实体多个表怎么写
- ¥15 temux 启用docker 服务失败
- ¥15 Flask 使用celery发送邮件出现‘目标计算机积极拒绝‘
- ¥15 超时跳出方法代码的返回值问题