Colorful Life2010

随机读取数据库表內容的方法
Weather:多云 ,西南风 5-6级 ,最高气温9 ℃
mySql
代码:

SELECT column FROM table
ORDER BY RAND()
LIMIT 1


PostgreSQL
代码:
SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1


Microsoft SQL Server
代码:
SELECT TOP 1 column FROM table
ORDER BY NEWID()


Oracle
代码:
SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1

IBM DB2
代码:
SELECT column FROM table
ORDER BY RAND()
FETCH FIRST 1 ROWS ONLY

ref:http://www.petefreitag.com/item/466.cfm

补充一个Access:

SELECT top 10 * FROM 表 ORDER BY Rnd(id)

Rnd(id) 其中的id是自动编号字段,可以利用其他任何数值来完成

比如用姓名字段(UserName)

历史上的今天: [2007/03/10]超好看的OLYMPUS广告,BOA的MTV

[随机读取数据库表內容的方法]的回复

ZZZzzz 于 2006-03-16 13:09:05 发表 | IP:152.104.150.*
好东西的说
littlenew 于 2008-06-10 16:13:28 发表 | IP:218.17.62.*

补充一个Access:

SELECT top 10 * FROM 表 ORDER BY Rnd(id)

这个你试过吗??我记得好像是不行,在前台还是显示第一次显示的数据,不知道是有时间间隔,还是我的access有问题,反正只能显示第一次的数据。我想应该是种子的问题吧。

如果要实现真正的随机还是要靠程序的。

柠檬园主 于 2008-06-11 22:17:55 发表 | IP:124.93.18.*

ACCESS这个方法不能说不好用,只是AC的特殊性导致体现不出来.

AC是所有用户共用一个缓存,第一个用户访问时取了结果就一直在缓存里,再有多更用户执行这个RND操作,也只是把上次的结果体现出来.....

Post a Comment~