仅当mysql中的前一行列与sql不同时才选择记录

f45qwnt8  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(280)

我有一个mysql的问题,我找不到是否可以用mysql解决。
例如,我有一张table:

|cod | value    |
| 1  |  value1  |
| 1  |  value2  |
| 2  |  value3  |
| 1  |  value4  |
| 5  |  value5  |
| 5  |  value6  |
| 2  |  value7  |

我想要的结果是:

|cod | value    |
| 1  |  value1  |
| 2  |  value3  |
| 1  |  value4  |
| 5  |  value5  |
| 2  |  value7  |

所以,只有当该行的cod与以前的记录不同时,才获取该行。
所以我的问题是:mysql有可能做到这一点吗?有没有办法知道mysql中前一行的值?

zkure5ic

zkure5ic1#

我已经用这种方法解决了,但我不知道这是不是最好的方法:

set @last := 'NULL';
Select cod, test.value, @last := cod as previous
from test
where @last != cod

一些更精通sql的人会建议我这是否是一个有效的方法吗?

相关问题