腾讯云网站解决方案帮您轻松应对建站成本高/网络不稳等常见问题

四种数据库随机获取10条数据的方法discuz织梦数据库表

0
回复
1371
查看
[复制链接]

764

主题

778

帖子

3万

积分

董事

Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72Rank: 72

积分
32970
发表于 19-1-10 10:23:14 | 显示全部楼层 |阅读模式      紫钻仅向指定用户开放  

SQL Server:

  1. <font size="3">SELECT TOP 10 * FROM T_USER ORDER BY NEWID()</font>
复制代码

6 M; n3 ~$ R/ c. T, Z+ X8 v" t5 rORACLE:: U4 p; F6 d, t; A

( }+ y$ _$ Z$ V) @7 Q) k. q
  1. <font size="3">SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10</font>
复制代码

5 m- @+ o7 r% n- vMySQL:5 q6 t6 o! h9 s4 e7 N; E* A
( R1 Q/ k% k; C2 a  P0 H
  1. <font size="3">SELECT * FROM T_USER  ORDER BY  RAND() LIMIT 10</font>
复制代码
/ Q# j% Y4 _, M5 @' D& N5 R
Access:- w/ R9 N3 ~1 d) }/ u+ @
6 q& o+ R) p9 H0 b' G/ V8 R
  1. <font size="3">SELECT TOP 10 * FROM T_USER ORDER BY rnd([一个自动编号字段])</font>
复制代码

" O, Y* S5 Z4 ?这条语句在 Access 中的“查询”中是可以运行并得到随机结果的,但在 ASP.NET等后台程序代码中却无法得到预期的随机效果。" |7 J# {% h# {+ p# l- R
正确的写法如下:
' _/ Z& ^0 w: Y4 }. \

以ASP.NET为例:

  M' {. O( ?% p" V

  1. <font size="3">Random random = new Random(System.Guid.NewGuid().GetHashCode());  k% y. Q3 @0 B5 c/ u/ A# o& t
  2. int r = random.Next();& w9 C/ `8 W+ T+ ?: {* P
  3. string sql = "SELECT TOP 10 * FROM T_USER ORDER BY RND(" + (-r) + "*自动编号字段)"</font>
复制代码

9 p% ^' y! ^. `5 F  f. C

- a2 p1 Q' [7 i  K5 {

7 x7 @- \% p& o4 C
网站简介

球球发,是一家 Discuz! 商业插件、风格模板、网站源码、 Discuz!运营维护技术等于一体的交流分享网站,全站95%的资源都是免费下载,对于资源我们是每天更新,每个亲测资源最新最全---球球发(如果我们有侵犯了您权益的资源请联系我们删除