坚持信仰的石头 2018-10-08 02:36 采纳率: 100%
浏览 4981
已采纳

如何从mysql数据库中随机获取任意条数据?

我在做一个随机出题的小应用,需要在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排序,题目顺序需要打乱。

  • 写回答

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 超时跳出方法代码的返回值问题