A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 柳依风 于 2013-12-7 16:22 编辑

要做一个在线考试系统,需要随机生成试卷,需要在数据库中随机抽若干条不重复的试题,该怎么写呢!

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

4 个回复

倒序浏览
数据库里应该没有重复的数据吧。。
我的想法是先搜索好多条数据 然后再把这些数据随机选出来几个

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
Goes_By 发表于 2013-12-7 12:42
数据库里应该没有重复的数据吧。。
我的想法是先搜索好多条数据 然后再把这些数据随机选出来几个 ...

数据库中是没有重复的数据,但当一次性取出十条的时候,怎么保证它的随机性?
如果当我随机取出第一条时,再取第二条的话,有可能取得还是刚刚已经取出的数据,这样可能会出现重复的
如果按照你的方法的话,会增加请求时间的,数据少的话,可以忽略这个时间,但是如果是大量的数据就不好办了,有没有可以直接在数据库中操作的方法呢?

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 Goes_By 于 2013-12-7 14:12 编辑

如果有数据有编号的话 直接随机搜索编号就行了
如果没编号 可以用select top 10 * from table order by newid()
回复 使用道具 举报
不知道你的表中主键是否是自动增加的。如果是的话,可以再增加一个字段作为标志位,当取出这个记录后,就做一个标志。在程序中随机生成一个表中存在整型数据,通过主键查找标志位,没有抽出的时候就抽出此题。否则就重新产生随机数。只是这种方法效率太低,剩的记录越少、效率越低。

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马