首先我们有一张学生兴趣表(student_hobby),字段包括主键(id)、姓名(name)、兴趣(hobby),表中数据如下(这个表有设计缺陷,但真实应用场景多会伴随多表联查,为了突出重点,避免多表联查,采用这个方案)。
id | name | hobby |
1 | 小明 | 篮球 |
2 | 小明 | 跑步 |
3 | 小华 | 读书 |
然后我们想让他显示成如下效果。
name | hobbies |
小明 | 篮球,跑步 |
小华 | 读书 |
那么我们可以使用如下SQL。
select name,group_concat(hobby separator ',') hobbies from student_hobbt group by name;
其中分隔符逗号也可以替换为其他想要使用的字符。