ホームページ  >  記事  >  データベース  >  mysql利用group_concat()合并多行数据到一行

mysql利用group_concat()合并多行数据到一行

WBOY
WBOYオリジナル
2016-06-07 16:29:001107ブラウズ

假设两个表a,b,b中通过字段id与a表关联,a表与b表为一对多的关系。假设b表中存在一字段name,现需要查询a表中的记录,同时获取存储在b表中的name信息,按照常规查询,b表中有多少记录,则会显示多少行,如果需要只显示a表记录行数,则需要把查询name字段得

假设两个表a,b,b中通过字段id与a表关联,a表与b表为一对多的关系。假设b表中存在一字段name,现需要查询a表中的记录,同时获取存储在b表中的name信息,按照常规查询,b表中有多少记录,则会显示多少行,如果需要只显示a表记录行数,则需要把查询name字段得到的多行记录进行合并,可以通过程序实现,但也可直接在sql层完成。

方法:

利用group_concat()方法,参数为需要合并的字段,合并的字段分隔符默认为逗号,可通过参数separator指定,该方法往往配合group by 一起使用。

例子:

select a.*,group_concat(b.name separator '-') as name from a left join b on a.id=b.id group by a.id;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。