GROUP_CONCAT() 上的 MySQL DISTINCT

mysql

1个回答

写回答

macy840

2025-06-22 00:30

+ 关注

MySQL
MySQL

MySQL的GROUP_CONCAT()函数是一个非常有用的聚合函数,它可以将多行数据合并为一个字符串,并且可以根据需要进行去重操作。在GROUP_CONCAT()函数中,我们可以使用DISTINCT关键字来去除重复的值,使得最终合并的字符串中的元素都是独一无二的。

下面我们将通过一个案例来演示如何使用GROUP_CONCAT()函数上的MySQL DISTINCT以及生成一篇关于这个功能的文章。

假设我们有一个名为"students"的表,其中包含了学生的姓名和所在的班级信息。我们想要统计每个班级中的学生姓名,并将它们合并为一个字符串。首先,我们需要创建这个表并插入一些数据:

sql

CREATE TABLE students (

id INT AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(50),

class VARCHAR(50)

);

INSERT INTO students (name, class) VALUES

('小明', '一班'),

('小红', '一班'),

('小刚', '二班'),

('小丽', '三班'),

('小华', '三班'),

('小杰', '三班');

现在,我们可以使用GROUP_CONCAT()函数来实现我们的需求,并且使用DISTINCT关键字去除重复的值:

sql

SELECT class, GROUP_CONCAT(DISTINCT name) AS students

FROM students

GROUP BY class;

执行以上查询语句,我们将会得到以下结果:

+-------+------------------+

| class | students |

+-------+------------------+

| 一班 | 小明,小红 |

| 二班 | 小刚 |

| 三班 | 小丽,小华,小杰 |

+-------+------------------+

通过以上的查询结果,我们可以看到每个班级中学生的姓名已经被合并为一个字符串,并且没有重复的值。

使用GROUP_CONCAT()函数和MySQL DISTINCT去除重复的值,你可以轻松地将多行数据合并为一个字符串。这对于统计、报表生成等需求非常有用。希望本篇文章能够帮助你更好地理解和应用这个功能。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号