经过一些搜索,我发现以下内容可以解决我的问题: http://www.w3resource.com/mysql/aggregate-functions-and-grouping/aggregate-functions-and-grouping-group_concat.php
我在 MYSQL 中运行以下命令
SELECT p.object_id, GROUP_CONCAT(p.user_id) as users
FROM objects p
GROUP BY p.user_id
我想获取像这样返回的数据:
object_id | users
64904 2181103, 2186761
64903 2186757
64902 2186755, 2186756
64901 2185796
64900 2185796
相反,我的数据以相同的值重复返回,如下所示:
object_id | users
64904 2181103, 2181103
64903 2186757
64902 2186755, 2186755
64901 2185796
64900 2185796
我的表格是这样的:
object_id | user_id
64904 2181103
64904 2186761
64903 2186757
64902 2186755
64902 2186756
64902 2186755
64902 2186756
64901 2185796
64900 2185796
有人可以帮助我理解我在这里做错了什么吗?
最佳答案
大多数(如果不是全部)MySQL 中的聚合函数都可以在函数调用中利用 DISTINCT 修饰符,如下所示:
GROUP_CONCAT(DISTINCT p.user_id) AS users
COUNT(DISTINCT p.user_id) AS userCount
etc...
关于mysql - 如何在 group_concat 中获取唯一值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41621155/