mysql 数据上一条下一条问题
需求说明
数据上一条下一条,是个老需求了 ,大多数是用在新闻类的功能上,一个数据列表按照一定条件然后按固定的一些字段排序,并且只给文章id参数,查过很多文章,多数都是用id进行排序的,不太符合我得需求,于是自己搞了几个小时,测试出来一个sql ,比较稳妥,扩展性强,理论可以随便写附加条件。
操作
- 表
图片总是上传失败,这里就上字段了
`id` bigint(32) unsigned NOT NULL AUTO_INCREMENT COMMENT ' 主键 ',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`is_delete` int(1) NOT NULL DEFAULT '0' COMMENT '数据开启状态,',
`type` varchar(64) NOT NULL DEFAULT '' COMMENT '类型new:新闻;certificate:消息;encyclopedia:百科;staggerer:事件;',
`title` varchar(250) NOT NULL DEFAULT '' COMMENT '标题',
`text_body` longtext NOT NULL COMMENT '正文',
`remark` varchar(1023) NOT NULL DEFAULT '' COMMENT '摘要',
`release_time` datetime DEFAULT NULL COMMENT '发布时间',
`source` varchar(255) NOT NULL DEFAULT '' COMMENT '来源',
`notice_img` varchar(500) NOT NULL DEFAULT '' COMMENT '缩略图'
我要根据类型查询条件并按发布时间倒序
- 上一条
select id, type, title, remark, release_time, source
from notice nt,
(select if(@cur = 0 and id = 35467, @cur := id, 0) tc,
if(@cur <> 0 and @pre = 0, @pre := @tpre, 0) tp,
if(@pre <> 0 and @nex = 0 and id <>