我有这个代码可以检查有多少重复代码:
mysql> SELECT code, count(code) as dup from tg_user group by code having dup>1 order by dup;
返回:
+------------+-----+
| CCC002 | 5 |
| BAR003 | 6 |
| FIR001 | 6 |
| NJS001 | 6 |
| DEL004 | 6 |
| BRA009 | 7 |
| TSH011 | 11 |
| SHO005 | 19 |
+------------+-----+
432 rows in set (0.08 sec)
表结构为:
mysql> describe tg_user;
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| user_id | int(11) | NO | PRI | NULL | auto_increment |
| user_name | varchar(30) | YES | UNI | NULL | |
| email_address | varchar(255) | YES | UNI | NULL | |
| code | varchar(25) | YES | | NULL | |
+---------------+--------------+------+-----+---------+----------------+
32 rows in set (0.00 sec)
为每个重复记录添加电子邮件地址的正确方法是什么,以便它作为列表出现,如下所示:
| SHO005 | 19 | name@domai.tld, name@domai.tld... |
+------------+-----+-----------------------------------------+
432 rows in set (0.08 sec)
非常感谢任何建议
最佳答案
GROUP_CONCAT
用逗号连接值。
添加 DISTINCT
以过滤掉重复项
SELECT code, count(code) as dup, GROUP_CONCAT(DISTINCT email_address)
from tg_user group by code having dup>1 order by dup;
关于mysql - 向重复记录添加附加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22615867/