数据库中随机取数据
1. 我想随机取出数据库中的5条数据
你可以先用select * from user取出全部的数据
然后取得rs的最大记录数(rs.recordcount),然后再随机取出1到最大记录数之间的随机5个数(这步应该很简单,不用解释如何做了吧呵呵),然后使用rs.move(你随机的5个数字之一)就可以分别取出5条记录来.这个办法的好处是你的主键id不需要是连续的,而绝大多数表都不是连续的呵呵.所以使用sql语句的where id=随机数字的方法不是很安全
2. 如何从数据库中随机的取得一条未被读取的条目
随机读取可用newid(),取一条可用top
1
举例:如在表test中随机抽取一条未被读取的数据,执行语句为:
select top 1 * from test order by newid()第一次执行结果:
第二次执行结果:
结论:两次执行结果有可能一样,也有可能不一样,也就是实现了随机的效果。
3. C# 数据库随机抽取数据
我这只是思路啊,这个要实现的话要使用多线程技术
一个线程负责产生随机数与抽取数据
1首先一个随机数
对比内变量里的随机数,是否有重复,如果重复则此次无效,重新生成
2,根据此随机数抽取数据库中数据。
另一个线程负责清空内存变量的数据
即此线程开着一个计时器,然后根据时间来清除数据
希望对你有所帮助
4. 怎样在数据库中实现随机抽取
一般都是应用程序做的,如果一定要用数据库做,可以用rownum=round(dbms_random.value(1,999999999)取随机的行数
5. 请问,我想实现随机提取数据库某段的随机数据,该如何做
select
top
1
url
from
表order
by
newid()就可以随机从数据库表中取一条记录
6. 如何从mysql数据库中随机获取任意条数据
随机读取可用newid(),取一条可用top 1
举例:如在表test中随机抽取一条未被读取的数据,执行语句为:
select?top?1?*?from?test?order?by?newid()第一次执行结果:
第二次执行结果:
结论:两次执行结果有可能一样,也有可能不一样,也就是实现了随机的效果。
7. 如何从数据库中随机取出10条记录的方法
要看什么数据库了,不同的数据库SQL语句不同,不过大体上的原理差不多:
select 字段 from 表 order by 随机值
8. 随机抽取数据库中的记录
数据库里有5条记录,随机抽取4条。
code
--------------------------------------
<%
'-------------------------数据库连接-----------------------
Set
objConn
=
Server.CreateObject("ADODB.Connection")
objConn.ConnectionString
=
"Provider=Microsoft.Jet.OLEDB.4.0;"
&_
"Data
Source="
&
Server.MapPath("data.mdb")
objConn.Open
'-------------------------数据库连接-----------------------
'-------------------------检索数据-----------------------
strSQL
=
"SELECT
id,DataColumn
FROM
DataTable"
'Sql语句,检索数据库
Set
objRS
=
Server.CreateObject("ADODB.Recordset")
'创建记录集
objRS.Open
strSQL,
objConn,
1,
1
'执行检索
Count=objRS.RecordCount
'得到记录总数
Item=4
'显示记录数
'-------------------------检索数据-----------------------
'-------------------------------------------------------------------------------
redim
a(Item,
2),t(Count)
'定义2数组,数组a用来储存记录,数组t用来删选记录
'---------------------------------------
'初始数组数值,目的为了插入数据以后和此值做比较
for
each
j
in
t
j=0
next
'---------------------------------------
'---------------------------------------
'
随机抽取记录号
Randomize
timer
'初始化随机数生成器
for
j=1
to
Item
k=int(rnd*Count+1)
'从总数里面随机取一条记录
do
while
t(k)<>0
'判断是否记录是否已经在数组中
k=int(rnd*Item+1)
loop
t(k)=1
'第k条记录被选中
next
'--------------------------------------
j=1:i=1'定义下标
'--------------------------------------
'
循环选取数据集objRS中的部分记录存放到数组中
Do
While
Not
objRS.Eof
if
t(j)=1
then
a(i,1)=objRS("id")
'记录id
a(i,2)=objRS("DataColumn")
'记录内容
i=i+1
end
if
j=j+1
objRS.MoveNext
Loop
'--------------------------------------
'-------------------------------------------------------------------------------
'----------------------------显示内容--------------------
for
i=1
to
Item
Response.write
"序号"&a(i,1)&"<br>"
Response.write
"内容"&a(i,2)&"<p>"
next
'----------------------------显示内容--------------------
'---------------------------
'释放资源
objRs.Close
set
objRs=nothing
objConn.Close
set
objConn=nothing
'---------------------------
%>
Data
id
DataColumn
--------------------------
1
a
2
b
3
c
4
d
5
e
//
SQL
SERVER的话只需要newID()就行了,但ACCESS来说,它本身不提供newID()这个方法
9. 如何在数据库中随机取出1条记录php
/**
*MySQL随机取记录
*
*@param$t表
*@param$cID列,默认为id
*@param$n取多少个
*@param$w条件语句
*@param$fbool是否强制以多维数组形式返回,默认false
*@returnarray取1个直接返回结果数组(除非$f为true),取>1个返回多维数组,用foreach取出
*/
functionrand_row($t,$c='id',$n='1',$w='',$f=false){
$m=newmysqli(mysqli信息,自行查找php文档);
if(!empty($w)){
$w='AND'.$w;
}
$sql="SELECT*FROM`{$t}`WHERE{$c}>=(SELECTfloor(RAND()*(SELECTMAX({$c})FROM`{$t}`))){$w}ORDERBY{$c}LIMIT{$n};";
$xq=$m->query($sql);
$r=array();
while($x=$m->fetch_array($xq)){
$r[]=$x;
}
if($f==false&&count($r)==1){
return$r[0];
}else{
return$r;
}
}