四种数据库随机获取10条数据的方法
<p><strong>四种数据库随机获取10条数据的方法</strong></p>
<p>
SQL Server:</p>
<div class="codetitle">
<span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code17286">
<br>
SELECT TOP 10 * FROM T_USER ORDER BY NEWID()</div>
<p>
<br>
ORACLE:</p>
<div class="codetitle">
<span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code9000">
<br>
SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10</div>
<p>
<br>
MySQL:</p>
<div class="codetitle">
<span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code86974">
<br>
SELECT * FROM T_USER ORDER BY RAND() LIMIT 10</div>
<p>
<br>
Access:</p>
<div class="codetitle">
<span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code26495">
<br>
SELECT TOP 10 * FROM T_USER ORDER BY rnd([一个自动编号字段])</div>
<p>
<br>
这条语句在 Access 中的“查询”中是可以运行并得到随机结果的,但在 ASP.NET等后台程序代码中却无法得到预期的随机效果。<br>
正确的写法如下:</p>
<p>
</p>
<p>
以ASP.NET为例:</p>
<div class="codetitle">
<span><u>复制代码</u></span> 代码如下:</div>
<div class="codebody" id="code7932">
<br>
Random random = new Random(System.Guid.NewGuid().GetHashCode());<br>
int r = random.Next();<br>
string sql = "SELECT TOP 10 * FROM T_USER ORDER BY RND(" + (-r) + "*自动编号字段)"</div>
<p>
</p>
<p>
</p>
頁:
[1]