
最近实现的一个系统中,遇到了这样的情况:需要从数据库表中随机读取n条记录,必须保证每条记录都不相同原来的想法是弄两个链表,第一个读取对应数据库表中的所有记录,根据每个记录的ID来生成这个链表;第二个链表是有选定的随机读取的记录生成的,这样从第一个链表中选定的,就可以剪掉,以后就不会被选种,把选中的添加到第二个链表中后来发现,在不同的数据库中完全可以用SQL语句来实现随机选定不同记录这里把不同数据库实现的语句粘在这里,以供需要的人来参考Select a random row with MySQL:SELECT column FROM tableORDER BY RAND()LIMIT 1Select a random row with PostgreSQL:SELECT column FROM tableORDER BY RANDOM()LIMIT 1Select a random row with Microsoft SQL Server:SELECT TOP 1 column FROM tableORDER BY NEWID()Select a random row with IBM DB2:SELECT column, RAND() as IDX FROM table ORDER BY IDX FETCH FIRST 1 ROWS ONLYSelect a random record with Oracle:SELECT column FROM( SELECT column FROM tableORDER BY dbms_randomvalue )WHERE rownum = 1
1: 数据库查随即抽取10条QuestionId 放到数组arrayQuestion中
arrayQuestion[0-9]="select top 10 QuestionId ,NewID() as random from Question order by random"
2:页面加载时显示第一条(定义变量int n=0;)
第一条数据="select QuestionTopic from Question where QuestionId=arrayQuestion[n]"
3:button_onclick事件,点击显示下一条数据
n++;
下一条数据="select QuestionTopic from Question where QuestionId=arrayQuestion[n]"
我想我讲的已经够详细了。。。。~~
你让数据库表中的记录有一个数字编号,然后用VB随机生成一个这之间的数!
如果你用ADODC控件的话就是
dim a as single
a=int(adodc1recordsetcount(统计库中记录条数,具体记不清了)rndX)
rnd 生成的是0-1之间的数,后面的X你自己去想是多少?
然后给ADODC重新建立数据源
adodc1recordsouce="select from where 字段=a"
adodc1refsh
然后就是让他显示
lable1caption=adodc1rec`````fiels()
lable2````````````
用数据库变量做也是一样的!!!
用random函数取随机数就可以了然后将取得的随机数用SQL语句查询和你数据库中的某条记录ID是否相同是的话就显示,不是就不显示,要想显示多个随机的记录你可以用DO WHILE循环来做!还不明白发消息问我,顺便把你提问的问题也复制给我,太多了我分不清~
1 用select count()得到总记录条数t;
2 用分页查找,用随机数Random得到一个0<x<t的x数,然后分页的分页数和分页量都用x
3该分页查找得到的就是一个随机的记录。
4循环1-3步骤,直到得到希望数量的随机记录。
var total = 10000; // 总数var promises = [];var skip;for (var i = 0; i < N; i++) {
var skip = Mathround(Mathrandom() total);
promisespush(Modelfind({})skip(skip)limit(1)exec());}Promiseall(promises)then(function (results) {
// balabala});
1、随机小数 select rand(),
2、随机0-99之间的的整数。select cast( floor(rand()100) as int)
3、随机1-100之间的整数。select cast(ceiling(rand() 100) as int)
4、select newid() 随机十六进制组成的随机数,唯一数。
5、随机数个位数随机,保留两位小数位随机,select ROUND(rand()10, 2)
6、随机数十位数随机,个位数随机,小位小数位随机。select ROUND(rand()100, 2)
7、完成效果图。
以上就是关于SQL语句如何实现从数据库表中查询随机数据的记录全部的内容,包括:SQL语句如何实现从数据库表中查询随机数据的记录、C# 随机从数据库抽取数据。、vb 随机抽取数据库中的信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)