卜梁人 發表於 2023-12-12 00:00:00

四种数据库随机获取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 &lt;= 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]
查看完整版本: 四种数据库随机获取10条数据的方法