怎样从sql数据库中一次随机读取一条数据,而且以后随机读取出的数据不能和以前每次随机读取出的数据重复?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样从sql数据库中一次随机读取一条数据,而且以后随机读取出的数据不能和以前每次随机读取出的数据重复?相关的知识,希望对你有一定的参考价值。

我想从sql数据库的question表中每次随机读取一条数据显示到我的答题板上(答题板每次只能显示一条数据),点击“下一题”按钮又会随机从数据库中读取一条数据。我用的查询语句是:
Select top 1 * ,newid() as Random from question where chapterID=@chapterID order by Random
或Select top 1 * from question where chapterID=@chapterID order by newid()
但是这两条语句都可以每次随机读取一条数据显示在答题面板上,但是下次随机读取的一条数据有可能会跟以前某次抽取的数据重复,我想怎么让每次抽取的一条数据都和以前任何一次随机抽取的数据都不相同?
最好是,如果我的数据库中一共有6条记录,每次随机抽取一条,6次随机抽取完,到第七次再去随机抽取数据时告诉用户,数据库中题已经没有了,是否要重新随机抽取。

参考技术A 一个简单的办法是你另外建一个历史记录表,每次问题抽出来后把那问题插到历史表中,当你抽下一提时只抽取历史表中不存在的题目就可以了. 参考技术B Select top 10 * from question where chapterID=@chapterID order by newid()
随机取一定量的题目,按顺序每次给显示一题,如果超出这个量,则提示重新抽取。追问

我也想呀,但是我不知道代码该怎么写,你能帮下忙吗?

追答

取出的10道题是不会重复的,只是一个显示的问题,取决于你用的什么程序、

本回答被提问者采纳
参考技术C 看视频学习部就得了,或者多练习练习,多尝试尝试 参考技术D 保存临时变量,判断呗.看已经读取了哪些题目

以上是关于怎样从sql数据库中一次随机读取一条数据,而且以后随机读取出的数据不能和以前每次随机读取出的数据重复?的主要内容,如果未能解决你的问题,请参考以下文章

hql语句怎么写向Hive中一次插入一条数据或一个字段的值,类似关系型数据库的sql语句?

SQL中一次插入多条数据

怎样将sqlserver2005数据库中一张表的一半数据取出来

怎样删除mysql一个表中的全部数据

sql 一对多关系随机查一条

怎样清空数据库sql 2000,清空后让表的id从1开始