首页 > mysql如何两个字段排序,查找上下条

mysql如何两个字段排序,查找上下条

如图所示。他的列表按照这样查询出来的

SELECT * FROM content WHERE ORDER BY sort asc,cid DESC;


现在要获取下一条到底怎么办,因为发现普通的 cid<int  根本取不对,因为还要考虑sort的字段
但是sort的字段是很极端的,客户有可能不填的

MySQL中根据ID查询指定记录(id为1024)的上一条记录和下一条记录:
上一条 SELECT * FROM posts WHERE id < 1024 ORDER BY id DESC LIMIT 1;
下一条 SELECT * FROM posts WHERE id > 1024 ORDER BY id LIMIT 1;

或者试试:
上一条

select * from content where cid = 
(select max(cid) from content where cid < 1024 order by sort asc, cid desc);

下一条

select * from content where cid = 
(select min(cid) from content where cid > 1024 order by sort asc, cid desc);

我觉得可以利用视图,将

SELECT * FROM content WHERE ORDER BY sort asc,cid DESC;

引入伪列@rownum

然后每次取得一条记录顺便记下这个伪列。
参考:http://blog.csdn.net/ystyaoshengting/article/details/6904627


写个存储过程把以上结果插入到一个临时表,用游标循环临时表取每一条记录就行了,我没太明白你的取下一条是什么意思

【热门文章】
【热门文章】