转载: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. 【一个诡异的问题】用饿了么的自定义主题之后发现表格顶部的复选框checkbox错位了
  2. CRM呼叫中心toolbar的cancel按钮会导致session清理
  3. ASP.NET Core 2.2+Quartz.Net 实现Web定时任务
  4. layui导出html到pdf,layui打印html页面转成pdf
  5. mysql key_len_浅谈mysql explain中key_len的计算方法
  6. adb bugreport保存位置_图文教程:PC利用adb工具通过CMD命令控制手机动作(备忘笔记)...
  7. 弄懂bind,apply和call的区别
  8. Notification添加点击意图的学习理解
  9. Oracle数据库驱动ojdbc6下载
  10. 三维实景建模技术的应用
  11. 如何调试手机网页页面
  12. 小程序 web-view 打开 微信公众号文章
  13. 十二、适配器模式——解决充电的烦恼 #和设计模式一起旅行#
  14. 创业干货:在众说纷纭中找到前进的方向
  15. ARMV8体系结构简介:预备知识
  16. 韩国精神(2001.08)
  17. 执行GetWindowTextA和其他api时,注意eax的长度,OD调试到内核层搞基,速度把我的文章放到首页
  18. 客户关系管理及客户服务简介(译)
  19. C++实现贪吃蛇(控制台)
  20. CentOs上下翻页

热门文章

  1. 嵌入式项目实战——基于QT的视频监控系统设计(一)
  2. java 传参需要定义吗_java的传参究竟是按值传递的还是按引用传递的
  3. 利用C++,解决猴子吃桃问题
  4. 互联网原型设计,选择原型工具OR手绘?
  5. python自动打开_如何用Python自动打开和关闭Tor浏览器
  6. 【题解】vijos P1029 晴天小猪历险记之number(bfs 康托展开)
  7. windows编程之TextOut与DrawText -- 文本输出实验
  8. app debug版正常运行,release版点开app就闪退
  9. 【精华】批量修改文件夹中的文件名
  10. 学历造假、拖欠工资、核心技术归属存疑?AI 独角兽创始人遭质疑后回应!