mysql如何两个字段排序,查找上下条
怪我咯
怪我咯 2017-04-17 13:12:27
[MySQL讨论组]

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

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


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

走同样的路,发现不同的人生

全部回复(3)
PHP中文网

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

PHP中文网

我觉得可以利用视图,将

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

引入伪列@rownum

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

ringa_lee

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);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号