mysql怎么查询上一条记录_MySQL中查询已知记录的上一条和下一条记录「建议收藏」

mysql怎么查询上一条记录_MySQL中查询已知记录的上一条和下一条记录「建议收藏」设MySQL中有一个形如下表的数据表,表名为test:+——+——+—————+|ID|No|Other|+——+——+—————+|1|1|Someothers1||2|2|Someothers2||3|3|So…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

设MySQL中有一个形如下表的数据表,表名为test:

+——+——+—————+

| ID   | No   | Other         |

+——+——+—————+

|    1 |    1 | Some others 1 |

|    2 |    2 | Some others 2 |

|    3 |    3 | Some others 3 |

|   10 |    4 | Some others 4 |

|   15 |    5 | Some others 5 |

|   16 |    6 | Some others 6 |

|   19 |    7 | Some others 7 |

+——+——+—————+

其中,”ID”为每条记录的唯一ID(一般为自增字段),”No”为每条记录在表中对应的位置(为直观起见),”Other”为表中的其他信息(可为N个字段).

现在我们要查找”ID=3″的记录的”上一条”和”下一条”记录.

1.仅列出字段”ID”的值:

SELECT CASE WHEN SIGN(ID – 3) > 0 THEN ‘Next’ ELSE ‘Prev’ END AS DIR, CASE WHEN SIGN(ID – 3) > 0 THEN MIN(ID) WHEN SIGN(ID – 3) < 0 THEN MAX(ID) END AS ID FROM test WHERE ID <> 3 GROUP BY SIGN(ID – 3) ORDER BY SIGN(ID – 3);

结果:

+——+——+

| DIR | ID   |

+——+——+

| PREV |    2 |

| NEXT |   10 |

+——+——+

2.列出所有字段值:

SELECT * FROM Test WHERE ID IN (SELECT CASE WHEN SIGN(ID – 3) > 0 THEN MIN(ID) WHEN SIGN(ID – 3) < 0 THEN MAX(ID) END AS ID FROM test WHERE ID <> 3 GROUP BY SIGN(ID – 3) ORDER BY SIGN(ID – 3)) ORDER BY ID ASC;

结果:

+——+——+—————+

| ID   | No   | Other         |

+——+——+—————+

|    2 |    2 | Some others 2 |

|   10 |    4 | Some others 4 |

+——+——+—————+

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197538.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java integer最大值_java int型最大值/最小值,最大值+1,最小值-1

    java integer最大值_java int型最大值/最小值,最大值+1,最小值-1java中,int型变量是有符号整形变量。int型变量占用4个字节(32bit位)。int型变量采用补码形式来表示数值。对于一个二进制数,正数的补码是其本身,负数的补码是所有二进制位取反再加一。int变量中,第一位是符号位(0表示正数,1表示负数)。我们下面来实际分析int型中正数和负数是怎么表示的。5数字为正数,第一位符号为是0,正数5的二进制码是000000000000101,补码还是…

    2022年9月8日
    0
  • matlab实现人脸识别gui界面_神经网络实现人脸识别

    matlab实现人脸识别gui界面_神经网络实现人脸识别最近在学习matlab图像处理部分,发现人脸识别这一块非常好玩,在这里做个总结。人脸识别之一:查找图片中的人脸并用方框圈出这种类似于智能手机拍照时,屏幕里那个框任务头部的红框。大致步骤为:获取RGB图片—&gt;转换为灰度图像—&gt;图像处理—&gt;人脸识别。从书中摘出的代码如下:clearallclc%获取原始图片i=imread(‘face.j…

    2022年9月25日
    0
  • 下列变量名不符合python命名规范的是_以下选项中不符合 Python 语言变量命名规则的是( )。_学小易找答案…[通俗易懂]

    下列变量名不符合python命名规范的是_以下选项中不符合 Python 语言变量命名规则的是( )。_学小易找答案…[通俗易懂]【判断题】表达式chr(ord(‘B’)+32)的值为’A’。【单选题】执行语句for(i=1;i++<4;);后变量i的值是()【单选题】表达式len(range(1,10))的值为()。【多选题】使用折线图时,需要注意以下哪些细节?【判断题】Python表达式not3>2>6+8的结果为True。【单选题】以下选项中不符合Python语言变量命…

    2022年5月1日
    132
  • 0817a

    0817ahttps://zhidao.baidu.com/question/1302230504869242619.html

    2022年6月1日
    40
  • MySQL导入sql文件的三种方法

    MySQL导入sql文件的三种方法文章目录一、使用工具NavicatforMySQL导入1.打开localhost_3306,选中右击“新建数据库”3.指定数据库名和字符集(可根据sql文件的字符集类型自行选择)3.选中数据库下的表运行SQL文件4.选中路径导入二、使用MySQLWorkbench导入(MySQL的官方工具)1、第一种方法①.新建一个数据库demo(名字任取),点击指示图标(或者File栏里面的OpenSQLScript…)②.选中路径导入SQL文件③.添加指定库名的命令,并点击运行注意:大概在15、16行

    2022年10月2日
    0
  • 未来三五年,社会上什么工作会更吃香呢?这几方面[通俗易懂]

    未来三五年,社会上什么工作会更吃香呢?这几方面

    2022年2月14日
    101

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号