首页 > 解决方案 > 将增量 id 添加到 mysql 结果

问题描述

我的数据如下所示,

Data
A
A
B
B
C
X
D

我想用增量值提取唯一/不同的结果。它应该如下所示,

ID  VALUE
1   A
2   B
3   C
4   D
5   X

我已经尝试了以下,

SET @row := 0;
SELECT @row := @row + 1 , mytable.mycolumn as VALUE
FROM change mytable, (SELECT @row := 0) r;

以上给了我结果,

    VALUE
1   A
2   A
3   B
4   B
5   C
6   D
7   X

标签: mysqlsql

解决方案


如果您使用的是 MySQL 8+,那么ROW_NUMBER这里的方法是:

SELECT ROW_NUMBER() OVER (ORDER BY Data) AS ID, Data AS VALUE
FROM (SELECT DISTINCT Data FROM mytable) t
ORDER BY ID;

在早期版本的 MySQL 中,您可以通过在首先选择不同的数据值使用用户变量生成行号来纠正当前的尝试:

SET @row := 0;
SELECT @row := @row + 1 , Data as VALUE
FROM (SELECT DISTINCT Data FROM mytable) t, (SELECT @row := 0) r;

这有效,如下面的演示所示。

演示


推荐阅读