使用 MySQL 选择匹配值后的下一条记录

使用 MySQL 选择匹配值后的下一条记录

如何选择符合条件的行旁边的所有行?

这是具有10行的表结构,但将来行数会增加。

表结构 纯文本:

ID      Date        N1
1     DateTime    9  
2     DateTime    2
3     DateTime    5
4     DateTime    9
5     DateTime    3
6     DateTime    6
7     DateTime    7
8     DateTime    9
9     DateTime    3
10    DateTime    9

笔记: “DateTime”字符串只是符号性的,它可以是任何日期时间。

我想知道第一个N1数字后面的数字:9

我尝试了几种方法,但结果不是我想要的。

预期结果是:

ID      Date        N1
2     DateTime      2
5     DateTime      3
9     DateTime      3

答案1

您可以使用临时表保存等于的Id记录。然后从表中选择所有等于的记录,即临时表中的值N19TimesId加一这是该列中紧接着的下一个记录,即的值Id之后的下一个记录。N19

SQL 查询

DROP TABLE IF EXISTS t1;
CREATE TEMPORARY TABLE t1 (SELECT id FROM numbers WHERE N1 = 9);
Select * FROM t1;

SELECT * FROM numbers
WHERE id IN (Select id+1 FROM t1);

或者

SELECT * FROM numbers WHERE id IN (SELECT ID+1 FROM numbers WHERE N1 = 9)

确认

从“时代”中选择 *

在此处输入图片描述

使用上述查询

在此处输入图片描述


更多资源

答案2

更好的答案Moderator Impersonator是:

SELECT * FROM numbers WHERE id IN (SELECT ID+1 FROM numbers WHERE N1 = 9)

相关内容