黑马程序员技术交流社区
标题:
怎么在数据库中随机抽取十条不重复的数据?
[打印本页]
作者:
柳依风
时间:
2013-12-7 12:33
标题:
怎么在数据库中随机抽取十条不重复的数据?
本帖最后由 柳依风 于 2013-12-7 16:22 编辑
要做一个在线考试系统,需要随机生成试卷,需要在数据库中随机抽若干条不重复的试题,该怎么写呢!
作者:
Goes_By
时间:
2013-12-7 12:42
数据库里应该没有重复的数据吧。。
我的想法是先搜索好多条数据 然后再把这些数据随机选出来几个
作者:
柳依风
时间:
2013-12-7 13:09
Goes_By 发表于 2013-12-7 12:42
数据库里应该没有重复的数据吧。。
我的想法是先搜索好多条数据 然后再把这些数据随机选出来几个 ...
数据库中是没有重复的数据,但当一次性取出十条的时候,怎么保证它的随机性?
如果当我随机取出第一条时,再取第二条的话,有可能取得还是刚刚已经取出的数据,这样可能会出现重复的
如果按照你的方法的话,会增加请求时间的,数据少的话,可以忽略这个时间,但是如果是大量的数据就不好办了,有没有可以直接在数据库中操作的方法呢?
作者:
Goes_By
时间:
2013-12-7 14:04
本帖最后由 Goes_By 于 2013-12-7 14:12 编辑
如果有数据有编号的话 直接随机搜索编号就行了
如果没编号 可以用select top 10 * from table order by newid()
作者:
红鹰(Jake)
时间:
2013-12-7 14:08
不知道你的表中主键是否是自动增加的。如果是的话,可以再增加一个字段作为标志位,当取出这个记录后,就做一个标志。在程序中随机生成一个表中存在整型数据,通过主键查找标志位,没有抽出的时候就抽出此题。否则就重新产生随机数。只是这种方法效率太低,剩的记录越少、效率越低。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2