在Access数据库中随机取一条指定条件的记录的方法~
必须要指定条件,而且并不知道总行数的情况下..请高人解答,可追分!1L的答案这样看起来是没问题的,但是因为ACCESS有缓存的关系,导致每次刷新都是一样的数据....
必须要指定条件,而且并不知道总行数的情况下..
请高人解答,可追分!
1L的答案这样看起来是没问题的,但是因为ACCESS有缓存的关系,导致每次刷新都是一样的数据. 展开
请高人解答,可追分!
1L的答案这样看起来是没问题的,但是因为ACCESS有缓存的关系,导致每次刷新都是一样的数据. 展开
展开全部
<%
set rs=server.CreateObject("adodb.recordset")
sql = "select top 1 * from [AAA] where a1=2 ORDER BY Rnd(-(id + " & Int((10000 * Rnd) + 1) & "))"
rs.open sql,conn,1,1
if rs.recordcount>0 then
do while not rs.eof
%>
.....
<%
rs.movenext
loop
end if
rs.close
set rs=nothing
%>
在 where 后面自己加判断就是了,条数 top 1 自己修改,10000 是表 AAA 随机抽取10000的记录条数
总的意思段代码就是 随机读取 带条件类型的 数据,如果实在不清楚,请加我的QQ156107320 。
至于是不是你要的东西,你自己试了就晓得了,希望能帮助到你,大家一起学习,分多分少都没关系。
set rs=server.CreateObject("adodb.recordset")
sql = "select top 1 * from [AAA] where a1=2 ORDER BY Rnd(-(id + " & Int((10000 * Rnd) + 1) & "))"
rs.open sql,conn,1,1
if rs.recordcount>0 then
do while not rs.eof
%>
.....
<%
rs.movenext
loop
end if
rs.close
set rs=nothing
%>
在 where 后面自己加判断就是了,条数 top 1 自己修改,10000 是表 AAA 随机抽取10000的记录条数
总的意思段代码就是 随机读取 带条件类型的 数据,如果实在不清楚,请加我的QQ156107320 。
至于是不是你要的东西,你自己试了就晓得了,希望能帮助到你,大家一起学习,分多分少都没关系。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select top n * from [table] order by rnd(id) 'id为自动编号
加条件 select top n * from [table] where title='中国' order by rnd(id) 等等
加条件 select top n * from [table] where title='中国' order by rnd(id) 等等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个实例:
SQL="Select top 6 * from Dv_bbs1 order by newID() desc"
随机取一条指定条件的的实现语句:
在ACCESS里
SELECT top 15 id FROM tablename order by rnd(id)
SQL Server:
Select TOP N * From TABLE Order By NewID()
Access:
Select TOP N * From TABLE Order By Rnd(ID)
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
Select TOP N * From TABLE Order BY Rnd(Len(UserName))
MySql:
Select * From TABLE Order By Rand() Limit 10
SQL数据库有个newid函数,可以很方便的用SQL语句得到表中的随机数据。
但access数据库没这么方便,虽然有个Rnd,可以通过“select top 10 * from tb order by rnd(id)”得到随机数据,在程序中简单的加上Randomize,是没作用的,道理很简单,Randomize不可能影响SQL语句中的rnd,那只不过是个字符串,SQL语句是放到jet中去执行的。
SQL="Select top 6 * from Dv_bbs1 order by newID() desc"
随机取一条指定条件的的实现语句:
在ACCESS里
SELECT top 15 id FROM tablename order by rnd(id)
SQL Server:
Select TOP N * From TABLE Order By NewID()
Access:
Select TOP N * From TABLE Order By Rnd(ID)
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(UserName)
Select TOP N * From TABLE Order BY Rnd(Len(UserName))
MySql:
Select * From TABLE Order By Rand() Limit 10
SQL数据库有个newid函数,可以很方便的用SQL语句得到表中的随机数据。
但access数据库没这么方便,虽然有个Rnd,可以通过“select top 10 * from tb order by rnd(id)”得到随机数据,在程序中简单的加上Randomize,是没作用的,道理很简单,Randomize不可能影响SQL语句中的rnd,那只不过是个字符串,SQL语句是放到jet中去执行的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果1L的方法做不到,你可以把rs记录集作为一个枚举类型或数组,在程序里判断。由于不知道你用的是何种语言,在此告诉你一个思路
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询