/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • RSS订阅

SQL查询当前数据上一条和下一条的数据以实现获取文章上下篇文章信息

2013-12-26 十有三 0 浏览:10071 数据库 SQL Server

项目中需要实现获取当前文章的的上一篇文章和下一篇文章,以实现较好的站内链接跳转。具体实现方式其实就是使用SQL查询当前数据的上一条和下一条关联数据。

相关文章:

  1. SQL获取上一条数据
  2. SQL获取下一条数据
  3. SQL使用ROW_NUMBER函数获取没有ID的当前数据的上下文数据(上一条和下一条)

这里假设有一张员工表,有三个字段 (ID,员工姓名,年龄):

表结构:

--由于作为测试表,只有两个字段,主要是自动增长标识ID和文章标题
--下面看下具体实现的SQL语句。
CREATE TABLE [dbo].[Article](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Title] [nvarchar](150) NULL
)

获取上一条数据:

SELECT TOP(1) ID,Title FROM [Article] WHERE ID<@CurrentId ORDER BY ID DESC

获取下一条数据:

SELECT TOP(1) ID,Title FROM [Article] WHERE ID>@CurrentId ORDER BY ID ASC

原理说明:

@CurrentId表示当前文章的ID,假设当前文章的ID是500,那么上一篇文章的ID应该是501,下一篇文章ID则是502。
这两条SQL语句的原理分析如下:

1、第一步在WHERE条件中过滤掉数据。

要获取当前数据的上一条数据就要排除掉ID比当前ID大的。

假设当前ID是500,那么只要获取ID为499、498和497以上的数据,而要过滤掉ID为501、502和503以下的数据。

同理要获取下一条数据或下一篇文章数据就要过滤排除掉ID比当前ID小的。

2、第二部要做的是精确获取当前数据的上下关联数据。

上一步骤已经获取了所有ID比当前ID小的数据,那么我们只要将这些数据降序排序下,然后取第一条数据就是当前数据的上一条数据。

而获取下一条关联数据则相反,我们获取到的数据都是比当前ID大的,所以我们要升序排序,然后获取第一条数据才是当前数据的下一条数据。 


作者:十有三

出处:https://shiyousan.com/post/0d3a0db7-3cae-486f-b5b5-a0b1ad118be3

版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。


  • 上一篇: 解决操作系统任务栏中谷歌浏览器chrome图标变成QQ图标
  • 下一篇: .NET 使用HttpWebRequest 伪造Request.UrlReferrer

相关文章
  • SQL SERVER中查询当天、当月、当年数据的SQL语句
  • System.Data.SqlClient.SqlError: 尚未备份数据库的日志尾部
  • 记录MongoDb连接错误System.TimeoutException: A timeout occured after 30000ms selecting a server
  • 创建 SQL Server Express自动备份数据库功能
  • 解决COMMIT TRANSACTION 请求没有对应的 BEGIN TRANSACTION错误
  • 解决SQL SERVER还原数据库错误:备份介质集不完整。介质簇计数: 2。缺失的介质簇序列号: 1
发表评论
记住昵称

文章分类

.NET技术 122 数据库 24 Web前端 21 网站建设运维 33 操作系统与应用 67 程序猿日常 11 开发工具 11 其他随笔 13

文章标签

ASP.NET ASP.NET MVC C# CSS HTML IIS Javascript Linux MongoDB MySql SQL SQL Server Visual Studio Windows系统 版本控制系统 插件工具 道学 佛经 服务器 搞笑娱乐 好文分享 软件应用 生活知识 诗词 手机问题 随笔 网络知识 网站设计优化 网站维护 养生保健 异常处理 硬件设备 游戏攻略

热门文章

  • 解决IE11安装升级失败和在安装前需要更新的问题
  • VS重构重命名的快捷键
  • 林蛋大与楚中天,朱肚皮与朱月坡
  • Win10中如何设置Hyper-V的网络让虚拟机也能上外网
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件

推荐文章

  • OneNote如何取消共享笔记和删除邀请的用户
  • ASP.NET MVC 统一化自定义异常处理方案的选择
  • .NET 解决XML反序列化出现 XML文档(0, 0)中有错误 缺少根元素。
  • ASP.NET 在.aspx页面中使用<script runat="server"></script>标记
  • 安卓onenote出现错误代码80a00010导致无法登陆

最新评论

  • 能不能帮我一下QQ号是。2946145656
  • 非常感谢~帮大忙了
  • 我的版本没有这个选项,微软太霸道了
  • 我想请问一下,我用的也是iis跟url rewri
  • 不错,解决问题了. 不知道这个iis日志,能

友情链接

  • Passingwind的博客
  • 坤哥网
  • 码友网
  • Wil的博客

知识共享许可协议 CC BY-SA 4.0本站作品采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。
闽ICP备15003702号