MySQL:按组值添加 ID

标签 mysql grouping

假设我有一个像这样的表myTable:

col1   | col 2
-------+---------
213    | Peach
32467  | Peach
44     | Apple
5      | Banana!
3      | Banana!

如何添加 id 列以获得如下结果:

col1   | col 2   | id
-------+---------+------
213    | Peach   | 1
32467  | Peach   | 1
44     | Apple   | 2
5      | Banana! | 3
3      | Banana! | 3

col 2 可以包含任何值...

最佳答案

有没有比这样做更好的方法

SELECT `col 1`, `col 2`, groupID
FROM `myTable` as a, 
(SELECT `col 2`, @groupID := ifnull(@groupID,0) + 1 as groupID 
FROM myTable
GROUP by 1) as b
ON a.`col 2` = b.`col 2`

关于MySQL:按组值添加 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32121240/

相关文章:

PHP 打开多个连接

mysql - 不同行上的事件之间的时间差

javascript - 如何在 Javascript 中按 15 分钟间隔对 json 集合进行分组

Java 匹配字符串的最佳方式是什么?

sql-server - 如何仅选择前 ROW_NUMBER 与 SUM 组合

mysql - 在 MYSQL 数据库中设计 Rainfall_data 表的最佳方法

php - 如何使用php中的 anchor 将包含整个数据库的一个页面中的选定值显示到另一页面

php - 在 laravel 5 中搜索查询

r - 如何添加到 group_by_at dplyr 函数中的分组

php - 将 3d 数组转换为唯一值的关联数组并对它们的相关值求和