group_concat

本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) 。
MySQL中group_concat函数
完整的语法如下:
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符‘])

基本查询
mysql> select * from aa;
+------+------+
| id| name |
+------+------+
|1 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200  |
|3 | 500  |
+------+------+
6 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,逗号分隔(默认)
mysql> select id,group_concat(name) from aa group by id;
+------+--------------------+
| id| group_concat(name) |
+------+--------------------+
|1 | 10,20,20|
|2 | 20 |
|3 | 200,500|
+------+--------------------+
3 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,分号分隔
mysql> select id,group_concat(name separator ‘;‘) from aa group by id;
+------+----------------------------------+
| id| group_concat(name separator ‘;‘) |
+------+----------------------------------+
|1 | 10;20;20 |
|2 | 20|
|3 | 200;500  |
+------+----------------------------------+
3 rows in set (0.00 sec)

以id分组,把去冗余的name字段的值打印在一行,
逗号分隔

mysql> select id,group_concat(distinct name) from aa group by id;
+------+-----------------------------+
| id| group_concat(distinct name) |
+------+-----------------------------+
|1 | 10,20|
|2 | 20  |
|3 | 200,500 |
+------+-----------------------------+
3 rows in set (0.00 sec)

以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序
mysql> select id,group_concat(name order by name desc) from aa group by id;
+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
|1 | 20,20,10  |
|2 | 20|
|3 | 500,200|
+------+---------------------------------------+
3 rows in set (0.00 sec)

转自:http://www.poluoluo.com/jzxy/200812/53698.html

时间: 2024-10-30 04:06:27

group_concat的相关文章

【MySQL】MySQL的group_concat使用例子

> 参考的优秀文章 GROUP_CONCAT(expr) > 简单的例子 此函数的功能,是拼接group分组多行的数据为一行,并可以指定去重.排序.分隔符. 例子: select t.name, group_concat(distinct t.role order by t.sort asc separator ';') from ( select 'Nick' as name, 'coder' as role, 1 as sort union all select 'Nick' as nam

CONCAT substr group_concat find_in_set

(SELECT p.*,(SELECT CONCAT(m.name,m.id) FROM service_fastfix_category m WHERE m.id=SUBSTR(p.id,1,4)) AS parentcode,(SELECT GROUP_CONCAT(ee.name )FROM ele_part_category ee  WHERE FIND_IN_SET(ee.code,p.m_part_category_ids))AS groupname FROM service_fas

MySQL group_concat 1024 大小

1. GROUP_CONCAT有个最大长度的限制,超过最大长度就会被截断掉,你可以通过下面的语句获得: SELECT @@global.group_concat_max_len; show variables like "group_concat_max_len"; 2.在MySQL配置文件中my.conf或my.ini中添加: #[mysqld] group_concat_max_len=102400 3.重启MySQL服务

MySQL GROUP_CONCAT()的使用

1. MySQL GROUP_CONCAT() mysql> SELECT pub_id,GROUP_CONCAT(cate_id) -> FROM book_mast -> GROUP BY pub_id; 返回结果:(默认逗号分隔) +--------+-----------------------+| pub_id | GROUP_CONCAT(cate_id) |+--------+-----------------------+| P001 | CA002,CA004 | |

MySQL中group_concat函数

完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 Sql代码   select * from aa; +------+------+ | id| name | +------+------+ |1 | 10| |1 | 20| |1 | 20| |2 | 20| |3 | 200 | |3 | 500 | +------+------+ 6 rows in set (0

MySQL concat concat_ws group_concat 函数(连接字符串)

CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. mysql> select concat('11','22','33'); +------------------------+ | concat('11','22','33') | +------------------------+ | 112233 | +------------------------+ mysql> select concat_ws(',','

mysql查询分组归类函数-group_concat,通常与group_by一起使用

select a.`name`,group_concat(b.name SEPARATOR'.') as persons from `group` as a,`person` as b,`persongroup` as c where a.id = c.groupid and b.id = c.personid group by a.`name` 使用group_concat最终得到的数据效果:重复的name 通过group_by已经过滤掉了,同时被过滤数据的persons字段内容进行了追加.

MySQL多行结果合并成一行,GROUP_CONCAT

测试数据表 以product_id;分组,把name字段的值打印在一行,逗号分隔(默认) SELECT id,GROUP_CONCAT(name) FROM test_brand GROUP BY product_id; 以id分组,把name字段的值打印在一行,分号分隔 SELECT id,GROUP_CONCAT(name SEPARATOR ';') FROM `test_brand` GROUP BY product_id;

<经验杂谈>Mysql中字符串处理的几种处理方法concat、concat_ws、group_concat

Mysql中字符串处理的几种处理方法concat.concat_ws.group_concat以下详情: MySQL中concat函数使用方法:CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串. 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串.一个数字参数被转化为与之相等的二进制字符串格式:若要避免这种情况,可使用显式类型 cast, 例如:SEL

mysql group_concat函数

函数语法: group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator '分隔符'] ) 下面举例说明: select * from goods; +------+------+ | id| price| +------+------+ |1 | 10| |1 | 20| |1 | 20| |2 | 20| |3 | 200 | |3 | 500 | +------+------+ 6 rows in set (0.00