首页/ 填坑/ 文章详情

MySQL获取上一篇与下一篇的文章

MySQL 文章 上一篇 下一篇 纯手工 发布于 2021-03-24

作为一个纯手工制作的博客网站,明知还可以增加许多功能,但UP主特别懒,懒延症发作了。也不是真的太懒,主要平时每天对着代码,改了又改,修了又修,下班后那有兴趣再碰代码呢!玩游戏不香,看番剧不自在么?

鉴于此,网站大改版是不可能的了,一没时间,二没动力。可小改动还是有的,最简单点添加文章的上一篇与下一篇功能。

新增功能的优点:

- 丰富文章页面,扩展更多的特色区域
- 提升用户体验,快速切换上下文章
- 深挖SEO节点,增强文章的关联性

Posts表结构:

MySQLCREATE TABLE `posts` (
  `post_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '文章id',
  `post_author` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '作者id',
  `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '文章创建日期',
  `post_content` longtext NOT NULL COMMENT '文章内容',
  `post_title` text  NOT NULL COMMENT '文章标题',
  `post_cover` varchar(255) NOT NULL DEFAULT '' COMMENT '文章封面图片',
  `post_status` varchar(20)  NOT NULL DEFAULT 'publish' COMMENT '文章状态',
  `post_type` varchar(20) NOT NULL DEFAULT 'post' COMMENT '文章类型',
  `post_pageview` bigint(20) NOT NULL DEFAULT '0' COMMENT '文章阅读数',
  PRIMARY KEY (`post_id`),
  KEY `post_author` (`post_author`),
  KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`post_id`)
)

获取文章上一篇post_id:

MySQLSELECT MAX(post_id) AS post_id FROM posts WHERE post_id < 1 AND post_status = 'publish' AND post_type = 'post'

获取文章下一篇post_id:

MySQLSELECT MIN(post_id) AS post_id FROM posts WHERE post_id > 1 AND post_status = 'publish' AND post_type = 'post'

※ 获取文章有个BUG,当上下文章没有时,获取post_id为Null,可以根据UI表现自行调整样式。

文章评论0 records

最新 最早

0

最新评论Latest comments

凡心的仙人凡心的仙人 03-18 14:35
谢谢你了!
rantrismrantrism 2023-04-03 11:27
您好~我是腾讯云开发者社区运营,关注了您分享的技术文章,觉得内容很棒,我们诚挚邀请您加入腾讯云自媒体分享计划。完整福利和申请地址请见:https://cloud.tencent.com/developer/support-plan 作者申
唐牛才是食神唐牛才是食神 2022-06-15 10:51
(*°▽°*)八(*°▽°*)♪,解决了
唐牛才是食神唐牛才是食神 2022-06-15 10:49
发现不得了的东西,今晚回去好好研究下...
胖螺胖螺 2022-02-04 00:58
( ゜- ゜)つロ 在写了在写了。看到也有些感慨。因为站长前年在我原博客的留言,让我毅然选择去深造,选择读研,曾经我想过挺多东西的,还是自己本专业的适合我自己。在这先表达感谢。新年快乐!