Mysql查询使用变量查找三个连续的数字

Mysql查询使用变量查找三个连续的数字,mysql,Mysql,编写SQL查询以查找至少连续出现三次的所有数字。该表包含id和Num列。Num列值应该是连续的 我使用三个变量:tert、prev和current来存储三个连续的数字。但是,以下代码没有给出正确的输出。我想知道为什么 SELECT if((@tert := @prev) = (@prev: = @current) = (@current := Num),Num,'') as ConsecutiveNums FROM Logs, (SELECT @current := -10, @prev

编写SQL查询以查找至少连续出现三次的所有数字。该表包含id和Num列。Num列值应该是连续的

我使用三个变量:tert、prev和current来存储三个连续的数字。但是,以下代码没有给出正确的输出。我想知道为什么

SELECT if((@tert := @prev) = (@prev: = @current) = (@current := Num),Num,'') as ConsecutiveNums
FROM
  Logs,
  (SELECT @current := -10, @prev := -1, @tert = -1) init

哪个列表示表中的顺序?请参见编辑,它回答了您的问题。
2=2=2
的计算结果不为true,因为
2=2
=>
1=2
=>
0
。所以它不起作用。可能使用
(2=2)*(2=2)*(2=2)
我可以尝试2=2和2=2,但Mysql中有短路吗?如何避免Mysql中的短路?*是什么意思?我做了一个编辑,你可以尝试
*
而不是
什么列表示表中的顺序?请看编辑,它回答了你的问题。
2=2=2
的计算结果不是真的,因为
2=2
=>
1=2
0
。所以它不起作用。可能使用
(2=2)*(2=2)*(2=2)
我可以尝试2=2和2=2,但Mysql中有短路吗?如何避免Mysql中的短路?*是什么意思?我做了一个编辑,你可以尝试
*
而不是