不知道楼主用的那个数据库:SQL读取随机数据,列举几个MSSQL,Access,MySQL,Orcal
MsSql随机取数据 select top 2 * from TableName order by newid()
Access 随机取数据 select SELECT top 2 id FROM 表1 order by rnd(id)
mySql 随机取数据 SELECT id FROM gueze order by rand() limit 2
orcal随机读取数据 select * from (select * from pubcode.occupation_akt order by dbms_random.value) aa where aa.orderid is not null and rownum<=2
我觉得这里你不管用Java 还是用C# 等语言操作。。取随机数据 还是用SQl实现吧。。希望对你有帮助。。
目前使用的DB2,但以后要更换数据库,不知道会换成那一种,所以需要一个通用的。
@泱泱: 你用的是.net 项目 还是 Java项目 如果是JavaEE有Hibernate数据持久化 可以换不同的数据库。。如果是.net 项目的话 有entity framework ,LinqtoSql,Nhibernate,Ado.net 了网上有很多多种数据库使用的代码。。
楼主用的是什么数据库?
http://www.weste.net/2007/8-28/10241127052.html sql server
http://www.pconline.com.cn/pcedu/empolder/db/mysql/0509/697526.html mysql
怎么不能使得数据库的特定语法,在程序里根据不同数据库使用不同语法,比用程序实现简单多了
那你至少先要判断一下数据库中有多少条数据,才可以在这个区间随机吧
这样的话,就需要先读取数据库中数据的总数,得到随机数,然后再去数据库中操作,需要2次操作数据库
@chenping2008: 他这个需求导致只能这样处理,不过select count(*) 的执行不会花什么时间
sql server里有好多随机数的写法 sql语句里写上newid 记录都是乱序排列了 然后取前两条就可以了