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

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

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

761

主题

775

帖子

3万

积分

董事

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

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

SQL Server:

  1. <font size="3">SELECT TOP 10 * FROM T_USER ORDER BY NEWID()</font>
复制代码
1 F* x, S, n+ v+ Y+ K" N
ORACLE:
4 \( u( y& L/ A5 @& l
& g6 ^/ x6 h' w+ k, k5 R
  1. <font size="3">SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10</font>
复制代码
! [8 H" A8 U5 |& u
MySQL:6 v& |1 E: q) {

' `9 F6 Q- P- d+ K
  1. <font size="3">SELECT * FROM T_USER  ORDER BY  RAND() LIMIT 10</font>
复制代码
* C3 Z3 g. g' _, C1 R
Access:$ {# _" M; x# i% q1 Q( A7 n

. q" t$ w" s% N5 B! }! }+ E, B
  1. <font size="3">SELECT TOP 10 * FROM T_USER ORDER BY rnd([一个自动编号字段])</font>
复制代码
  Q' V4 ]. h1 d# `) U+ m; J
这条语句在 Access 中的“查询”中是可以运行并得到随机结果的,但在 ASP.NET等后台程序代码中却无法得到预期的随机效果。
- c4 F7 V2 `, t+ E. w8 C正确的写法如下:2 I* |/ ^( X1 @# @" A1 t1 n8 R

以ASP.NET为例:

% ?; @$ U  G3 {1 D; h

  1. <font size="3">Random random = new Random(System.Guid.NewGuid().GetHashCode());' ]0 E3 B: Q$ l* H3 f8 c& N
  2. int r = random.Next();
    2 u" P0 E/ R( _
  3. string sql = "SELECT TOP 10 * FROM T_USER ORDER BY RND(" + (-r) + "*自动编号字段)"</font>
复制代码


- t) W) _- u. ~9 H# D+ S) O" _9 a& i. w) i$ |) P  ~( K


, B8 u1 `" K& S9 x  n3 m
网站简介

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