方法一:
string preSql = "select top 1 * from news where news_id < " + id + " order by news_id DESC"
方法二:
string preSql = "select * from [news] where news_id = (select MAX(news_id) from [news] where news_id<" + id + ")";
string nextSql = "select * from [news] where news_id = (select MIN(news_id) from [news] where news_id>" + id + ")";
Id Ordered
1 5
2 4
3 3
4 2
排序条件 Order by Ordered asc,Id desc
当Id=2时 正确的上一条应该是 Id=3的那一条,
下一条应该是Id=1的那一条,
Ordered 字段 可以重复 如全部为0
直接在第一个order by 的字段后面加就可以了,中间用逗号隔开,不过先走第一个排序
首先,得分清你所说的“下一条”是以什么为依据?new_ID,还是新闻的发布时间,这两个有时候是不一致的。
其次,如果有必要,可以在编辑新闻时候,手动加上“上一个”ID和"下一个"ID,保存在本记录中。
1、根据你的排序规则,查找上一条和吓一条
2、order by createtime desc,userid asc,birthday desc
根据查找当前记录的排序规则(顺序也不能变),然后再查找上一条和下一条
对了,news_id是不是标识列?
前一条:
select top 1 * from news where Ordered <=[current order id] and ID>[current id] Ordered desc,Id asc
后一条: