﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Java之旅-文章分类-数据库</title><link>http://www.blogjava.net/hoocoral/category/30866.html</link><description>Record my Java-learning process.</description><language>zh-cn</language><lastBuildDate>Thu, 17 Apr 2008 13:52:26 GMT</lastBuildDate><pubDate>Thu, 17 Apr 2008 13:52:26 GMT</pubDate><ttl>60</ttl><item><title>关于sql server、access 和mysql中order by 随机读取记录</title><link>http://www.blogjava.net/hoocoral/articles/193690.html</link><dc:creator>胡昆荣</dc:creator><author>胡昆荣</author><pubDate>Thu, 17 Apr 2008 03:35:00 GMT</pubDate><guid>http://www.blogjava.net/hoocoral/articles/193690.html</guid><wfw:comment>http://www.blogjava.net/hoocoral/comments/193690.html</wfw:comment><comments>http://www.blogjava.net/hoocoral/articles/193690.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hoocoral/comments/commentRss/193690.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hoocoral/services/trackbacks/193690.html</trackback:ping><description><![CDATA[<p>newid()是SQL SERVER中的函数，ACCESS里不支持 <br />
ACCESS可以用RND函数结合ASP中的RND函数来实现随机抽取。 <br />
&lt;% <br />
... <br />
Randomize <br />
strSQL = "Select TOP 1 字段列表 FROM 表名 orDER BY RND(-(编号字段)*" &amp; RND() &amp; ")" <br />
... <br />
%&gt;</p>
<p>要产生指定范围的随机整数，请使用以下公式： <br />
Int((upperbound - lowerbound + 1) * Rnd + lowerbound) <br />
这里， upperbound 是此范围的上界，而 lowerbound 是此范围内的下界。 </p>
<p>然后查询取表中的值罗，没有的话再生成一个来查 <br />
执行这句SQL语句就行了，返回随机取得的一条记录 <br />
select top 1 * from member order by newid() <br />
随机取一个数然后把这个数作为ID来取数据 </p>
<p>比如MAXCOUNT是所有的数据条数 <br />
那么可以getid=Int((MAXCOUNT - 1 + 1) * Rnd + 1) 来生成从1到MAXCOUNT的一个随机数。 <br />
然后用SQL语句"select * from member where menid=" &amp;getid <br />
就可以了 <br />
随机提取10条记录的例子： </p>
<p>Sql server： </p>
<p>select top 10 * from 表 order by newid() </p>
<p>Access： </p>
<p>Select top 10 * FROM 表 orDER BY Rnd(id) </p>
<p>Rnd(id) 其中的id是自动编号字段，可以利用其他任何数值来完成 </p>
<p>比如用姓名字段(UserName) </p>
<p>Select top 10 * FROM 表 orDER BY Rnd(len(UserName)) </p>
<p>MySql： </p>
<p>Select * From 表 order By rand() Limit 10</p>
 <img src ="http://www.blogjava.net/hoocoral/aggbug/193690.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hoocoral/" target="_blank">胡昆荣</a> 2008-04-17 11:35 <a href="http://www.blogjava.net/hoocoral/articles/193690.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>