转载:http://www.111cn.net/database/mysql/66709.htm

在mysql中查查询上一篇与下一篇只需要对数据进行按id排序之后,然后我们再进行asc或者desc最当前ID下一个就可以了,下面整理了一些例子。

实现网站文章里面上一篇和下一篇的sql语句的写法。

当前文章的id为 $article_id,当前文章对应分类的id是$cat_id,那么上一篇就应该是:

 代码如下 复制代码

SELECT max(article_id) FROM article WHERE article_id < $article_id AND cat_id=$cat_id;
执行这段sql语句后得到 $max_id,然后
SELECT article_id, title FROM article WHERE article_id = $max_id;

简化一下,转为子查询即:
SELECT article_id, title FROM article WHERE article_id = (SELECT max(article_id) FROM article WHERE article_id < $article_id AND cat_id=$cat_id);

下一篇为:

 代码如下 复制代码

SELECT min(article_id) FROM article WHERE article_id > $article_id AND cat_id=$cat_id;
执行这段sql语句后得到 $min_id,然后

SELECT article_id, title FROM article WHERE article_id = $min_id;

简化一下,转为子查询即:

 代码如下 复制代码

SELECT article_id, title FROM article WHERE article_id = (SELECT min(article_id) FROM article WHERE article_id > $article_id AND cat_id=$cat_id);

最后讲一下有很多朋友喜欢使用下面语句

上一篇:

 代码如下 复制代码

select  id  from table where id<10 order by id desc  limit 0,1;

下一篇:

select  id  from table where id>10 limit 0,1;

这样肯定没有问题,但是是性能感觉不怎么地。

sql语句优化

你可以使用union all来实现一条语句取3行数据,但是前提是3个查询的字段要相同

这个查询出来的结果第一行就是上一篇文章,第二行是当前文章,第三行是下一篇文章

 代码如下 复制代码

(select id from table where id < 10 order by id asc limit 1) 
union all 
(select id from table where id = 10) 
union all  
(select id from table where id > 10 order by id desc limit 1);

mysql实现文章上一篇下一篇的sql语句相关推荐

  1. sql 新增加一列序号_取出上一条下一条的 sql语句

    在开发中,很多公司用的ID为自增的,上一条下一条的获取方法不在此类,一般如 select * from tablename where id select * from tablename where ...

  2. ShopEx文章页增加上一篇下一篇功能

    在所有的文章页中,会经常发现都会有这么一个功能,能引导用户去查看上一篇文章或下一篇文章,而在ShopEx中,我DEZEND了一下文章模型,并没有找到上一篇这样的函数功能,因此,这就需要我们手动在对应的 ...

  3. java文章上一篇下一篇_每个人都必须阅读的10篇Java文章

    java文章上一篇下一篇 一个月前,我们发布了每个人都必须阅读的10篇SQL文章列表. 我们相信jOOQ博客上的文章列表将为我们的读者带来非凡的价值. jOOQ博客是一个专注于Java和SQL的博客, ...

  4. ecshop调用文章显示上一篇下一篇_无需整理

    为什么80%的码农都做不了架构师?>>>    首先调用文章中的上一篇和下一篇语法为: 上一篇:{$next_article.title} 下一篇:{$prev_article.ti ...

  5. 用Java 实现文章内容上一篇下一篇功能

    ITDragon博客 用Java 实现文章内容上一篇下一篇功能,逻辑和分页不一样.效果和本页面底部一样.采用的是Spring data jpa SQL语句实现该功能 SQL 语句查询的是该数据的上一条 ...

  6. 如何修改dede文章页上一篇下一篇"没有了"

    dedecms上一篇下一篇调用标签: {dede:prenext get='pre'/} {dede:prenext get='next'/} 如何自定义织梦dedecms上一篇下一篇标签调用内容呢, ...

  7. Html做文章查看上一篇下一篇功能,SDCMS文章添加上一篇、下一篇

    SDCMS是一款小型ASP内容管理系统管理开源程序,虽然是小型的,但是主要功能都俱备.在细节方面,该款开源程序没有对内置标签进行统一的管理,不方便日后功能的修改,如果需要修改或者添加,需要去官方网站上 ...

  8. 织梦手机站文章页调用显示只显示 上一篇下一篇 不显示标题

    include目录下的这个文件:arc.archives.class.php中做以下修改 将827行代码-834行代码替换成$this->PreNext['pre'] = "上一篇:& ...

  9. php转盘抽奖源码yii2,yii2实现 上一篇,下一篇 功能的代码实例

    最近做了简答的文章详情页面,需要在页面底部加入上一篇,下一篇 按钮,分析了下,最基本需要有文章的标题和id(作为参数). 开始想的是当前的id加减1,但考虑到如果部分id丢失就不对了,于是分别查询比当 ...

  10. 织梦上一篇下一篇没有了改为英文

    织梦上一篇下一篇没有了改为英文 网站根目录找到 include/arc.archives.class.php 文件 打开找到 上一篇 改为 Previous 上一篇后面的"没有了" ...

最新文章

  1. js动态生成div和事件
  2. 专访平安科技首席科学家肖京:平安智能化的甜蜜与辛酸
  3. STL sort解析
  4. 资阳停车场系统推荐_详细讲解停车场管理车牌识别系统安装
  5. http dns django
  6. 编程游戏:划拳机器人比赛-{ 咱们园子是否应该设立一个算法挑战/编程竞赛的平台? }...
  7. python数组下标用变量_你所不知道的Python奇技淫巧13招【实用】
  8. [Shell]test命令使用指南
  9. 2010-2020年全国poi兴趣点
  10. mysql 并发_MySQL多版本并发控制机制(MVCC)源码浅析
  11. 简单调用exe的方法
  12. 四数之和 leetcode
  13. BI项目实施完成,不知道怎么进行测试?Smartbi手把手教你
  14. 机械硬盘显示无法访问由于IO设备错误的资料找回方法
  15. Xilinx火龙果学习笔记(1)---初识火龙果
  16. python3 发送qq邮件带图片
  17. 【python小作业】编写函数,接收一个任意字符串,返回其中最长的数字字串。要求使用正则表达式。
  18. SQL 子查询怎么优化?写的很深的这种!
  19. 高新企业为什么要做CTA、SRRC、CCC认证?
  20. 在虚拟机上搭建云平台环境(7)云平台组件服务安装

热门文章

  1. JSTL标签库的使用
  2. chapter1 静态分析技术-01反病毒引擎扫描virustotal
  3. qt 支持 html5,Qt 对比 HTML5 ——正反两面
  4. 中国电子驻车制动器行业市场研究与投资预测
  5. 一度智信:拼多多店铺提高权重的方法
  6. chatgpt3.5实时插件
  7. 计算机ip是唯一的吗,IP地址不是唯一的吗?怎么我
  8. 股市精忠社基本介绍:恒大集团跨界造车
  9. css 修改浏览器滚动条样式(火狐Firefox,谷歌google)
  10. 最令程序员沮丧的 10 件事