mysql - 将增量 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
解决方案
如果您使用的是 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;
这有效,如下面的演示所示。
演示
推荐阅读
- android - 如何将edittext值从recyclerview适配器传递给android中的活动
- c# - 如何创建文件或将文件上传到 Azure Data Lake Storage Gen2
- php - windows文件解密
- java - 将枚举值列表与单个枚举进行比较
- sql - 如何在 SQL oracle 中连接 2 个表
- c++ - 由于模数运算符导致的编译代码问题
- javascript - 使用 where 子句 firestore 搜索时获取文档 ID
- node.js - Geojson 的 Mongoose 子文档
- ansible - 使用 ansible 角色和默认值启动服务
- c# - 如何将一个空游戏对象统一锚定在可拉伸图像内