mysql:select * from tablename order by rand() limit 10
sqlserver:select top 10 * from tablename order by NEWID()
ORACLE: 使用 __ dbms __ random __ value的一种方法
SQL> __ select __ *from __ (select __ *from __ t __ order __ by __ dbms_random.value) __ where __ rownum<10;
__ __ __ __ __ __ __ __ __ A
----------
__ __ __ __ __ __ __ __ 39
__ __ __ __ __ __ __ 101
__ __ __ __ __ __ __ 134
__ __ __ __ __ __ __ __ __ 5
__ __ __ __ __ __ __ __ 83
__ __ __ __ __ __ __ __ 97
__ __ __ __ __ __ __ __ 96
__ __ __ __ __ __ __ 140
__ __ __ __ __ __ __ __ 81
已选择9行。
SQL> __ select __ *from __ (select __ *from __ t __ order __ by __ dbms_random.value) __ where __ rownum<10;
__ __ __ __ __ __ __ __ __ A
----------
__ __ __ __ __ __ __ __ 27
__ __ __ __ __ __ __ 118
__ __ __ __ __ __ __ 141
__ __ __ __ __ __ __ 103
__ __ __ __ __ __ __ 128
__ __ __ __ __ __ __ __ 10
__ __ __ __ __ __ __ 142
__ __ __ __ __ __ __ __ 68
__ __ __ __ __ __ __ __ 74 __
有人说这是一种效率最差的方法,恳请告知比这更好的解决方案!
ACCESS(一):
yourstr="134612...."
sql="select top 10 * form yourdb where instr(''&id&'','"&yourstr&"')<>0
ACCESS(二):
1
2n=10 ''取任意10条记录
3set rs = server.CreateObject ("adodb.recordset")
4sql = "select * from table"
5rs.open sql,conn,1,1
6count=rs.recordcount ''记录总数
7IF Count<>empty Then
8Randomize
9for i = 1 to n ''循环n次
10num=Fix(Rnd*count) ''num便是随机产生的记录行数,用Fix(),使其不会大于count值。
11rs.move num ''移到改随机行
12Response.write rs(0) ''出该条记录
13rs.movefirst ''别忘了再把指针移到第一条
14next
15End IF
16rs.close
17set rs = nothing
SQL> __ select __ *from __ (select __ *from __ t __ order __ by __ dbms_random.value) __ where __ rownum<10;
__ __ __ __ __ __ __ __ __ A
----------
__ __ __ __ __ __ __ __ 39
__ __ __ __ __ __ __ 101
__ __ __ __ __ __ __ 134
__ __ __ __ __ __ __ __ __ 5
__ __ __ __ __ __ __ __ 83
__ __ __ __ __ __ __ __ 97
__ __ __ __ __ __ __ __ 96
__ __ __ __ __ __ __ 140
__ __ __ __ __ __ __ __ 81
已选择9行。
SQL> __ select __ *from __ (select __ *from __ t __ order __ by __ dbms_random.value) __ where __ rownum<10;
__ __ __ __ __ __ __ __ __ A
----------
__ __ __ __ __ __ __ __ 27
__ __ __ __ __ __ __ 118
__ __ __ __ __ __ __ 141
__ __ __ __ __ __ __ 103
__ __ __ __ __ __ __ 128
__ __ __ __ __ __ __ __ 10
__ __ __ __ __ __ __ 142
__ __ __ __ __ __ __ __ 68
__ __ __ __ __ __ __ __ 74 __
有人说这是一种效率最差的方法,恳请告知比这更好的解决方案!
ACCESS(一):
yourstr="134612...."
sql="select top 10 * form yourdb where instr(''&id&'','"&yourstr&"')<>0
ACCESS(二):
1
2n=10 ''取任意10条记录
3set rs = server.CreateObject ("adodb.recordset")
4sql = "select * from table"
5rs.open sql,conn,1,1
6count=rs.recordcount ''记录总数
7IF Count<>empty Then
8Randomize
9for i = 1 to n ''循环n次
10num=Fix(Rnd*count) ''num便是随机产生的记录行数,用Fix(),使其不会大于count值。
11rs.move num ''移到改随机行
12Response.write rs(0) ''出该条记录
13rs.movefirst ''别忘了再把指针移到第一条
14next
15End IF
16rs.close
17set rs = nothing