发布网友 发布时间:2022-04-23 05:13
共4个回答
热心网友 时间:2022-04-11 02:05
<%
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 。
至于是不是你要的东西,你自己试了就晓得了,希望能帮助到你,大家一起学习,分多分少都没关系。
热心网友 时间:2022-04-11 03:23
select top n * from [table] order by rnd(id) 'id为自动编号
加条件 select top n * from [table] where title='中国' order by rnd(id) 等等
热心网友 时间:2022-04-11 04:58
一个实例:
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中去执行的。
热心网友 时间:2022-04-11 06:49
如果1L的方法做不到,你可以把rs记录集作为一个枚举类型或数组,在程序里判断。由于不知道你用的是何种语言,在此告诉你一个思路