SQL查询当前数据上一条和下一条的记录

mssqlserver查询方法

其实我做了最简的就是如下写法

 代码如下 复制代码

上一条记录的SQL语句:

select top 1 * from news where newsid<id order by newsid DESC

下一条记录的SQL语句:

select top 1 * from news where newsid>id order by newsid ASC

另一种写未能

id是指当前数据news_id参数

方法一:

 代码如下 复制代码

string preSql = "select top 1 * from news where news_id < " + id + " order by news_id DESC"

string nextSql = "select top 1 * from news where news_id > " + id + " order by news_id ASC"

方法二:

 代码如下 复制代码

string preSql = "select * from [news] where news_id = (select MAX(news_id) from [news] where news_id<" + id + ")";
string nextSql = "select * from [news] where news_id = (select MIN(news_id) from [news] where news_id>" + id + ")";

mysql查询上一条与下一条的办法

如果ID是主键或者有索引,可以直接查找:
方法1:

 代码如下 复制代码
  1.select * from table_a where id = (select id from table_a where id < {$id} order by id desc limit 1);
2.select * from table_a where id = (select id from table_a where id > {$id} order by id asc limit 1);

方法2:

 代码如下 复制代码
  1.select * from table_a where id = (select max(id) from table_a where id < {$id});
2.select * from table_a where id = (select min(id) from table_a where id > {$id});

其他更优的暂时还没想出来

时间: 2024-12-10 18:07:27

SQL查询当前数据上一条和下一条的记录的相关文章

hibernate取上一条和下一条数据,怎么判断id为空的时候不查询

问题描述 例如我现在的查询下一条记录的连接为<ahref="find?id=2">如果上一条或下一条有记录就没事.但如果没记录候就会找不到id,然后抛异常怎么判断呢 解决方案 解决方案二:这个你只需要一个判断即可啊,例如:id=1的时候就不要出现上一页,id等于最后一页的时候就不出现下一页解决方案三:这是我们自己定义的分页,你可以参考下publicvoidsetPageInfo(intym,intzjls){this.zjls=zjls;//总记录数this.zys=thi

java代码-java开发:在编辑页面需要查询上一条或者下一条显示在编辑页面,怎么实现这个?

问题描述 java开发:在编辑页面需要查询上一条或者下一条显示在编辑页面,怎么实现这个? 通过编辑页面的按钮怎么取实现后台的代码?关键代码有哪些?通过什么去查上一条或者下一条数据?

sql查询每个班上成绩最高的学生信息

  sql查询每个班上成绩最高的学生信息 数据库表和数据准备: if exists (select * from sysobjects where id = OBJECT_ID('[classinfo]') and OBJECTPROPERTY(id, 'IsUserTable') = 1) DROP TABLE [classinfo] CREATE TABLE [classinfo] ( [id] [bigint] NOT NULL, [classID] [bigint] NOT NULL,

sql 查询同一张表,将一个字段下数值前三位相同的数据统计归为一类?

问题描述 sql 查询同一张表,将一个字段下数值前三位相同的数据统计归为一类? 比如table表中字段code ,name times44.10 dd 544.11 da 644.21 dc 144.22 db 7 根据code字段下是数值前三位相同的,归为一类.44.10和44.11归为44.1,并把times相加,即44.1 11 解决方案 select substr(t.code13)sum(times) from table group by substr(t.code13) 你的加个点

详解MyBatis直接执行SQL查询及数据批量插入_java

一.直接执行SQL查询: 1.mappers文件节选 <resultMap id="AcModelResultMap" type="com.izumi.InstanceModel"> <result column="instanceid" property="instanceID" jdbcType="VARCHAR" /> <result column="insta

关于文章浏览里的上一条和下一条的实现方法

<a href="content.asp?pev=<%=rs("id")%>">上一条</a> <a href="content.asp?last=<%=rs("id")%>">下一条</a> If pev="" And last="" then      sql="select * from inform

SQL查询重复数据与去除重复记录语句

例如:查询重复2次的数据并列出  代码如下 复制代码 select * from park_room where parkNum in ( select parkNum from park_room group by parkNum having count(parkNum) > 1 ) order by parkNum字段信息说明: park_room--停车位表 parkNum--车位号 例子 去除重复记录  代码如下 复制代码 SELECT COUNT(distinct parkNum)

sql 查询下一条数据的ID

问题描述 sql 查询下一条数据的ID 这个where条件在排序下没有效果 解决方案 第一条查询是有效的,只不过是因为你的DownLoad表了没有ID>14 的数据,所以返回空. 你看你的第二条查询,查询表所有ID,在结果集中,最大ID才13. 解决方案二: 再sqlServer中?上一条??and???下一条??*/?select?top?1?p_title?from?t_photo?where?p_id50?order?by?p_id?desc???select?top?1?p_title?

sql查询出现重复数据!!

问题描述 sql查询出现重复数据!! 想让查询结果里这个字段create_time或者content不重复,应该怎么加DISTINCT 啊 select town_name,id,tid,username,userid,school_id,school_name,class_name,send_id, content,create_time,mphone,is_read,need_revert,send_type,msg_type,parent_id, file_name,file_path,s