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(一):
sql="select top 10 * form yourdb where instr('*'&id&'*','"&yourstr&"')<>0
ACCESS(二):
n=10 ''取任意10條記錄
set rs = server.CreateObject ("adodb.recordset")
sql = "select * from table"
rs.open sql,conn,1,1
count=rs.recordcount ''記錄總數
IF Count<>empty Then
Randomize
for i = 1 to n ''循環n次
num=Fix(Rnd*count) ''num便是隨機產生的記錄行數,用Fix(),使其不會大於count值。
rs.move num ''移到改隨機行
Response.write rs(0) ''出該條記錄
rs.movefirst ''別忘了再把指針移到第一條
next
End IF
rs.close
set 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(一):
sql="select top 10 * form yourdb where instr('*'&id&'*','"&yourstr&"')<>0
ACCESS(二):
n=10 ''取任意10條記錄
set rs = server.CreateObject ("adodb.recordset")
sql = "select * from table"
rs.open sql,conn,1,1
count=rs.recordcount ''記錄總數
IF Count<>empty Then
Randomize
for i = 1 to n ''循環n次
num=Fix(Rnd*count) ''num便是隨機產生的記錄行數,用Fix(),使其不會大於count值。
rs.move num ''移到改隨機行
Response.write rs(0) ''出該條記錄
rs.movefirst ''別忘了再把指針移到第一條
next
End IF
rs.close
set 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(一):
sql="select top 10 * form yourdb where instr('*'&id&'*','"&yourstr&"')<>0
ACCESS(二):
n=10 ''取任意10條記錄
set rs = server.CreateObject ("adodb.recordset")
sql = "select * from table"
rs.open sql,conn,1,1
count=rs.recordcount ''記錄總數
IF Count<>empty Then
Randomize
for i = 1 to n ''循環n次
num=Fix(Rnd*count) ''num便是隨機產生的記錄行數,用Fix(),使其不會大於count值。
rs.move num ''移到改隨機行
Response.write rs(0) ''出該條記錄
rs.movefirst ''別忘了再把指針移到第一條
next
End IF
rs.close
set 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(一):
sql="select top 10 * form yourdb where instr('*'&id&'*','"&yourstr&"')<>0
ACCESS(二):
n=10 ''取任意10條記錄
set rs = server.CreateObject ("adodb.recordset")
sql = "select * from table"
rs.open sql,conn,1,1
count=rs.recordcount ''記錄總數
IF Count<>empty Then
Randomize
for i = 1 to n ''循環n次
num=Fix(Rnd*count) ''num便是隨機產生的記錄行數,用Fix(),使其不會大於count值。
rs.move num ''移到改隨機行
Response.write rs(0) ''出該條記錄
rs.movefirst ''別忘了再把指針移到第一條
next
End IF
rs.close
set rs = nothing
%>