mysql怎么查询一条记录的前一条记录和后一条记录

作者&投稿:巢卫 (若有异议请与网页底部的电邮联系)
如何在MySQL中查询当前数据上一条和下一条的记录~

您好,很高兴为您解答。

方法一:
查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):
select * from table_a where id = (select id from table_a where id < {$id} [and other_conditions] order by id desc limit 1) [and other_conditions];查询下一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):
select * from table_a where id = (select id from table_a where id > {$id} [and other_conditions] order by id asc limit 1) [and other_conditions];
方法二:
查询上一条记录的SQL语句((如果有其他的查询条件记得加上other_conditions以免出现不必要的错误))
select * from table_a where id = (select max(id) from table_a where id < {$id} [and other_conditions]) [and other_conditions];查询下一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):
select * from table_a where id = (select min(id) from table_a where id > {$id} [and other_conditions]) [and other_conditions];
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

~ O(∩_∩)O~

select top 1 * from book 不对,因为mysql里没有top这种写法,它用limit

查第一条 select * from book limit 1;
select * from book limit 0,30 后面的limit 0,30 是查询前30条记录

这个很简单。你在查询的时候要查3次,第一次查询的是当前的记录,第2,3次查询的分别是上一条和下一条记录。

所以说应该是3条语句。

select * from news where id=ID

select top 1 * from news where id > ID and classid=classid order by id asc

select top 1 * from news where id < ID and classid=classid order by id desc

你可能要先把当前的记录查出来,取出这条记录的分类ID,然后才能写出下面的2条查询语句。

mysql 与 msql一样,都用Transact-SQL语句查询!

上一条:select * from 表 where 数据id<@当前显示数据id order by 数据_id asc) limit 1
下一条:select * from 表 where 数据id>@当前显示数据id order by 数据_id desc) limit 1

mysql 里面不支持 select top

select * from 表名 where id = (记录id +1) or id = (记录id -1);

数据表中设置ID项啊,这条记录的ID的下一个ID不就是么


Mysql 当中怎么查询一个数据库中所有为空的表 ,或者所有有数据的表_百...
USE information_schema; -- Mysql 一个数据库所有有数据的表SELECT table_schema,table_name,table_rows FROM TABLES WHERE TABLE_SCHEMA='test' AND table_rows != 0 ORDER BY table_rows DESC;-- Mysql 一个数据库中所有为空的表SELECT table_schema,table_name,table_rows FROM TABLES WHERE...

Mysql怎么查询数据所在的一整行?
select * from 表名 where name=‘查找的名字’注:这里的单引号自己替换下,输入法只能打出这样的...

查询mysql数据库中所有表名
使用select命令,可以查询所有表名 写法如下:select table_name from information_schema.tables where table_schema='当前数据库'

mysql:只用一条sql语句,如何查出一个表里,不同条件对应的数据条数_百...
mysql只用一条sql语句查出一个表里不同条件对应的数据条数的步骤如下:我们需要准备的材料分别是:电脑、sql查询器。1、首先,打开sql查询器,连接上相应的数据库表,例如stu2表。2、点击“查询”按钮,输入:select count(*) from stu2 where sex=1 and age=2 union all select count(*) from ...

MYSQL查询一张表如何查询出最新信息
假设表名是D, 正确答案如下:select t2.eid, t2.ename, t2.yearmonth from D t2 join (select t1.eid, max(t1.yearmonth) as yearmonth from D t1 group by t1.eid ) t3 on t2.eid = t3.eid and t2.yearmonth = t3.yearmonth 运行通过后请采纳,谢谢!

php mysql 查询只返回第一条数据
1、首先用navicat新建一个数据库database1,在database1数据库中新建一个表table2。2、在table2中添加新的数据。3、接着新建一个名称为mysql_query的数据库,在页面中用mysql_connect 函数与数据库建立连接。4、用mysql_select_db函数选择要查询的数据库。5、最后将mysql_query,php文件在浏览器中打开...

mysql 一个大表的数据怎么查询
在mysql的information_schema下有存储数据库基本信息的数据字典表,可以通过查询tables表来获得所需要的表相关信息。

如何使用mysql查询前十条数据记录
MySql查询前10条数据sql语句为:select * from table_name limit 0,10 。通常0是可以省略的,直接写成 limit 10。0代表从第0条记录后面开始,也就是从第一条开始。

mysql中如何查询一个表中的三个数据
(1, 10, NULL, NULL, '告警'),(2, 60, NULL, NULL, '挂起当天'),(3, 70, NULL, NULL, '挂起当月'),(4, 80, NULL, NULL, '永久挂起,需管理员手动释放'),(5, 90, NULL, NULL, '拒绝本笔交易');查三个数据SQL为:select resid,resbh, ressc from risk_result where ...

mysql 我如何查询一批数据后,并更新这批数据
那么是不是所有的 update,从引擎中获取的行数都会是表大小的两倍呢?这个还是要分情况讨论的,上面的 SQL 更新了主键,如果只更新内容而不更新主键呢?我们来试验一下:等待 update 结束,查看 row_examined,发现其刚好是表大小:那我们怎么准确的这个倍数呢?一种方法是靠经验:update 语句的 where ...

威信县15574404649: mysql怎么查询一条记录的前一条记录和后一条记录 -
鄘彭亚伯: 这个很简单.你在查询的时候要查3次,第一次查询的是当前的记录,第2,3次查询的分别是上一条和下一条记录.所以说应该是3条语句.select * from news where id=IDselect top 1 * from news where id > ID and classid=classid order by id ...

威信县15574404649: 如何在MySQL中查询当前数据上一条和下一条的记录 -
鄘彭亚伯: 如果ID是主键或者有索引,可以直接查找:方法一:查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):select * from table_awhere id =(select id fromtable_a where idorder by id desc limit ...

威信县15574404649: mysql查询前几条记录的实现方法
鄘彭亚伯: ,不妨一看. SELECT * FROM table LIMIT 5; select * from issu_info limit 0,6Limit 0,6 这里是对的,显示前6条 select * from issu_info limit 7,6;Limit 7,6 从第8条开始取,取6条 select * from table order by rand() limit 1 这是随机mysql查询时选取一个...

威信县15574404649: Mysql查询数据库表中前几条记录 -
鄘彭亚伯: 问题,我想好多朋友也会碰到,下面我简单的说下我遇到的情况,且解决方法,希望对好多朋友有许多帮助:下面是我数据库test中表student的数据,其中第二条记录被我删除了 在查询分析器中输入select*fromstudentlimit5;即可查询到下图的...

威信县15574404649: mysql中如何查询表的第一条和最后一条记录 -
鄘彭亚伯: select top 1 * from book 不对,因为mysql里没有top这种写法,它用limit 查第一条 select * from book limit 1; select * from book limit 0,30 后面的limit 0,30 是查询前30条记录

威信县15574404649: mysql查询指定行的前一行怎么查 -
鄘彭亚伯: 先select 所有的记录.ID存入array 然后通过循环行,array[$i-1]就是前一行

威信县15574404649: mysql怎么查找上一条,下一条 -
鄘彭亚伯: 这个很简单,你只要获取当前id 然后上一条就id-1;下一条id+1就行

威信县15574404649: mysql取前几条数据怎么取 -
鄘彭亚伯: select * from tableA order by id desc limit 0,100; 以id倒序排序取前面100条数据

威信县15574404649: mysql 怎么查询第几条数据 -
鄘彭亚伯: 查询 第几条 select * from tablename limit 2,2 select * from table limit m,n 其中m是指记录开始的index,从0开始,表示第一条记录 n是指从第m+1条开始,取n条.select * from tablename limit 2,4 即取出第3条至第6条,4条记录

威信县15574404649: mysql 根据时间查询某个元素的上一个元素 -
鄘彭亚伯: 如果记录是按照时间来排序的,那查某个时间点的上一条可以这样:select * from 表名 where 时间

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网