案例
执行关联查询:
select a.cname,b.sname from class a,student b where a.cid=b.cls_id order by a.cname,b.sname
但现在只想出现2个班级,学生姓名在一行显示,代码如下:
select a.cname,group_concat(b.sname) from class a,student b where a.cid=b.cls_id group by a.cname order by a.cname,b.sname
group_concat
group_concat(
[distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符']
);
长度限制
处理字符串的长度是受限制的,默认长度为 1024,如果拼接的字符串超过1024,就会在数据库里面被截取,不会显示所有拼接数据;
设置当前session的group_concat长度,其他session连接不受影响:
SET SESSION group_concat_max_len = 102400;
设置全局group_concat长度:
SET GLOBAL group_concat_max_len = 102400;
例子
设置分隔符
select a.cname,group_concat(b.sname separator '、') as 学生 from class a,student b where a.cid=b.cls_id group by a.cname order by a.cname,b.sname
感谢:
http://blog.csdn.net/sinat_27406925/article/details/77507478




