You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL如何将去重后的用户姓名合并为单个列?

解决方案:将去重姓名合并为单列字符串

你的user表结构及数据如下:

idname
1John
2Matt
3Matt

你当前的查询仅能获取去重后的行数据,但无法实现姓名的单列合并。要得到格式为John, Matt的单列结果,可以利用MySQL的GROUP_CONCAT()函数结合去重逻辑实现:

方法一:直接去重合并

在GROUP_CONCAT中加入DISTINCT关键字,自动过滤重复姓名后合并为字符串:

SELECT GROUP_CONCAT(DISTINCT name SEPARATOR ', ') AS all_name FROM user;

该查询会返回一行数据,其中all_name列的值即为你需要的John, Matt。

方法二:分组去重后合并

先通过子查询分组获取不重复的姓名,再在外层进行合并:

SELECT GROUP_CONCAT(name SEPARATOR ', ') AS all_name FROM (
    SELECT name FROM user GROUP BY name
) AS unique_names;

此方法结果与方法一完全一致,适合需要更明确去重逻辑的场景。

PHP中转换为数组

拿到查询结果后,可通过explode()函数将字符串转为数组:

// 假设$row为查询返回的关联数组
$nameArray = explode(', ', $row['all_name']);
// 最终得到数组:['John', 'Matt']

内容的提问来源于stack exchange,提问作者Hiraeths

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:33:29