我有一个表testTble
,其中列testVal
包含重复值。我可以使用DISTINCT(testVal)
找到该列的每个 unique 值。但是我想为列的每个 unique 值设置一个特定的名称。
赞:
我在数据库中运行查询,并发现了这些不同的值。
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
那么如何设置这样的名称?
答案 0 :(得分: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;
在两种情况下,“名称”都是数字值,但这似乎与您要执行的操作一致。