当每次刷新页面时从sql数据库中读取不同10条数据

 我来答
yangshunyu6288
2009-08-06 · TA获得超过117个赞
知道答主
回答量:212
采纳率:0%
帮助的人:178万
展开全部
方法很多,选择适合你的:

对于数据量小的记录可以考虑一下方法实现随机获取记录

select top 1 * from table order by newid()
top后面的数字就是你要随即搜索出来几条数据,这个方法只适用sql server

SELECT top 4 * FROM 表 ORDER BY Rnd([一个自动编号字段])
Randomize
SELECT TOP 5 [TestTitle] FROM [TestTable] ORDER BY Rnd(-(TestID+"&Rnd()&"))
这句适用于ACCESS的

select * from table_name order by rand() [limit num];
mysql的随机查询语句。

参考资料:
order newid()
扫描整表,并对每条记录生成一个无序的不重复的ID,实际查询时每条记录都要插入一newid(),再对插入的newid数据排序,对于大量的数据,效率肯定会很慢.
大量数据时,建议给记录编连续的号码,再用随机函数rand()取记录

提供一个解决方案:
在前台生成一个从1~10000的随机数@rndnum ,然后这样查询
SQL code:SELECT top 10 ID,ClassID,title,title,[content],Author,ComeFrom,AutoPages FROM [Article] where id >= @rndnum order by id
这样试试看,同时如楼上所说,如果content是text等类型,先去掉这个字段

方案1:
DECLARE @i INT
SELECT @i = RAND(CHECKSUM(NEWID())) *10
SELECT TOP 1 * FROM Products WHERE ProductID BETWEEN @i AND @i + 100 ORDER BY NEWID()

方案2:
DECLARE @i INT
SELECT @i = RAND(CHECKSUM(NEWID())) *76 --其中76为总记录数-1,当取前10条则减9.
SELECT TOP 1 * FROM Products WHERE ProductID >=@i

更多这方面的问题可以参考这里:http://www.jc0088.com/Class-3.aspx

参考资料: http://www.jc0088.com/Class-3.aspx

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
母彦30
2009-08-06 · TA获得超过213个赞
知道答主
回答量:99
采纳率:0%
帮助的人:57.8万
展开全部
select top 10 * from tableA orderby newid()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
比北极熊还熊
2009-08-06 · TA获得超过124个赞
知道小有建树答主
回答量:322
采纳率:0%
帮助的人:224万
展开全部
定义一个表态变量,每刷新一次值加1,再根据这个值来取数据.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wlj04122
2009-08-06 · TA获得超过189个赞
知道答主
回答量:144
采纳率:0%
帮助的人:125万
展开全部
麻烦说清楚是JAVA还是JSP,这两个里面的代码有很大区别!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式