从数据库随机读取

wagu08090 2010-12-03 12:28:25
我做一个在线考试系统 数据库有一个题目列表 我想从该表里随机读取10道题 该怎么操作数据库啊 请各位大哥帮帮忙···先谢了···
...全文
105 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
在-云端 2010-12-03
  • 打赏
  • 举报
回复
考虑效率的话还是先获取最大和最小id,然后在中间随即取10个比较好些!
amani11 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jzh2004 的回复:]

SQL语句后面用order by rand() limit 10;取10条
[/Quote]

你这是要扫全表的

一般如果有自增id,先select max(id),min(id) from table ,找出最大,最小记录
然后通过合适的随机方式
例如找一个合适区间数字,WHERE id>数 LIMIT 10

或者,php随机出10个恰当数字,用union ALL 连接结果出来。。。随机性比前一种好,但效率比前一种差一些
Abin-2008 2010-12-03
  • 打赏
  • 举报
回复
order by rand()
沪php攻城师 2010-12-03
  • 打赏
  • 举报
回复
SQL语句后面用order by rand() limit 10;取10条
Abin-2008 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 amani11 的回复:]

那先找最大最小id和随机从数据库里取是一条语句还是两条语句啊

====================================
这可以用一条语句的。select max(id),min(id) from table 换成你的表名,字段名,就可以

语句多些没关系,但是每一条执行要快……当你处理500万+,几千万的单表数据,或者更多的时候,就知道了
[/Quote]

万一中间有题目删除过...
而且你这样也是做了两边的查询...
amani11 2010-12-03
  • 打赏
  • 举报
回复
那先找最大最小id和随机从数据库里取是一条语句还是两条语句啊

====================================
这可以用一条语句的。select max(id),min(id) from table 换成你的表名,字段名,就可以

语句多些没关系,但是每一条执行要快……当你处理500万+,几千万的单表数据,或者更多的时候,就知道了
wagu08090 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 amani11 的回复:]
引用 1 楼 jzh2004 的回复:

SQL语句后面用order by rand() limit 10;取10条


你这是要扫全表的

一般如果有自增id,先select max(id),min(id) from table ,找出最大,最小记录
然后通过合适的随机方式
例如找一个合适区间数字,WHERE id>数 LIMIT 10

或者,php随机出10个恰当数字,……
[/Quote]
那先找最大最小id和随机从数据库里取是一条语句还是两条语句啊

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧