1

我有一个包含重复值testTble的列的表。我testVal可以使用. DISTINCT(testVal)但是我想为列的每个唯一值设置一个特定的名称。

像:

我在我的数据库中运行查询并找到了那些不同的值。

SELECT DISTINCT(testVal) AS web FROM `testTble`

输出:

web
169.254.15.169
10.0.0.91
192.168.80.47
10

现在我想为这些值设置一个唯一的名称,如下所示:

169.254.15.169一样web21 10.0.0.91_web22

那么如何设置这样的名称呢?

4

1 回答 1

1

在 MySQL 8+ 中,您可以使用row_number()

select test_val, row_number() over (order by test_val)
from t
group by test_val;

在早期版本中,您可以使用变量:

select test_val, (@rn := @rn + 1) as seqnum
from t cross join
     (select @rn := 0) params
group by test_val;

在这两种情况下,“名称”都是一个数值,但这似乎与您想要做的一致。

于 2019-01-30T11:42:32.533 回答