请问一般论坛帖子列表的sql语句是怎么实现的?

satans17 2005-09-16 09:01:26
就像CSDN一样,每刷新一次,显示的帖子都不一样,有时候第一页有的帖子,点下一页还会出现
好像不是固定按照某一条件排序,
请问高手这个是怎么写的,提供一下思路,有具体的语句供参考更好,谢谢~
...全文
197 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
wfront 2005-09-18
  • 打赏
  • 举报
回复
按最后回复时间DESC排列的
satans18 2005-09-18
  • 打赏
  • 举报
回复
。。。
satans18 2005-09-18
  • 打赏
  • 举报
回复
哈哈~~结帖,祝大家中秋快乐~
dbserver 2005-09-16
  • 打赏
  • 举报
回复
select top 15 * from xxx
where( select id not in ....)


---------------
欢迊来到麦高网-私活兼职首选平台 www.mgao.net
laogou 2005-09-16
  • 打赏
  • 举报
回复
两次循环显示帖子
固定贴的显示在排序贴之前,这样有时可能在排序贴中出现固定贴
会重复出现帖子
laogou 2005-09-16
  • 打赏
  • 举报
回复
晕!!刚刚试了一下,果然如此,是按最后回复时间排序的
但有时候帖子重复出现又怎么解释呢,比如有时候第一页有,点下一页他又出现了???


有固定的贴
有排序的贴
固定贴
select top 3 * from table where leibie='web'and best=1 order by occurtime desc



排序的贴

select * from table where leibie='web' order by occurtime desc


satans18 2005-09-16
  • 打赏
  • 举报
回复
???
satans18 2005-09-16
  • 打赏
  • 举报
回复
晕!!刚刚试了一下,果然如此,是按最后回复时间排序的
但有时候帖子重复出现又怎么解释呢,比如有时候第一页有,点下一页他又出现了???
satans18 2005-09-16
  • 打赏
  • 举报
回复
occurtime 按最后的时间排序
这个是指最后回复时间吗???
  • 打赏
  • 举报
回复
occurtime 按最后的时间排序

我们研究的结果,csdn大概是这么写的select top 300 * from table where leibie='web' order by occurtime desc

satans18 2005-09-16
  • 打赏
  • 举报
回复
我等~~~
satans17 2005-09-16
  • 打赏
  • 举报
回复
这个不行吧~~~~因为还有其他很多条件,
比如回复的人多,查看的人多,或者最新的就排在前面
用newid()怎么做呢~
satans17 2005-09-16
  • 打赏
  • 举报
回复
汗~~上次忘记给马甲结帖,扣我性欲了~~
iuhxq 2005-09-16
  • 打赏
  • 举报
回复
可能是重新随机排序了吧

order by newid()
BlueDestiny 2005-09-16
  • 打赏
  • 举报
回复
呵呵,想不到一来就已经差不多结贴了~:)

topic一个表

board一个表

按board的lastdatetime排序,

回复的时复,把关联的lastdatetime更新
riyao 2005-09-16
  • 打赏
  • 举报
回复
就是那样。。。回复时更新时间。。
satans18 2005-09-16
  • 打赏
  • 举报
回复
我知道了~~~发贴的时候同时也把lasttime更新一下?
satans18 2005-09-16
  • 打赏
  • 举报
回复

完全按最后回复时间排序不行吧,

比如我一页显示20条记录,全部是今天刚刚有人回复的
这20条排在前面
现在有人发新帖了,如果是按最后回复时间排序
那这个新帖不是永远也到不了前面??
jingxiaoping 2005-09-16
  • 打赏
  • 举报
回复
非常同意superdullwolf(超级大笨狼,每天要自强) 的方法。

我在做留言系统的时候采用的就是这个方法。
第一个表专门是发贴子的,第二个表是回复用的,第一个表里面有一个字段叫作lastposttime,在每次回复的时候就把相应的发贴子的那个关联lastposttime更新成最新的时间。
然后排序的时候直接用第一个表按lastposttime进行排序就可以了。
satans18 2005-09-16
  • 打赏
  • 举报
回复
。。。。。
难道我错了??
连续两次回复,他又跑到第一位了
加载更多回复(4)

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧