相关文章推荐
粗眉毛的镜子  ·  mysql ...·  2 周前    · 
威武的苹果  ·  Java8 快速实现List转map ...·  6 月前    · 
迷茫的马克杯  ·  Java8 ...·  1 年前    · 

– 创建表结构

DROP TABLE IF EXISTS exe ;
CREATE TABLE exe (
id int(3) NOT NULL,
type int(3) default NULL,
name varchar(10) default NULL,
other int(3) default NULL,
text int(255) default NULL,
PRIMARY KEY ( id )
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

– 插入测试数据

INSERT INTO exe VALUES (‘1’, ‘1’, ‘分拼’, ‘2’, ‘1’);
INSERT INTO exe VALUES (‘2’, ‘1’, ‘四维’, ‘3’, ‘2’);
INSERT INTO exe VALUES (‘3’, ‘2’, ‘总评’, ‘1’, ‘4’);
INSERT INTO exe VALUES (‘4’, ‘3’, ‘季度’, ‘5’, ‘3’);

– group_concat和group by的使用

– 默认逗号连接
select t.type,group_concat(t.name) “result” from exe t group by t.type;

– separator指定连接符
select t.type,group_concat(t.name separator ‘;’) “result” from exe t group by t.type;

– 排序连接
select t.type,group_concat(t.name order by t.other desc) “result” from exe t group by t.type;

select t.type,group_concat(t.name order by t.other) “result” from exe t group by t.type;

– 低版本mysql连接数字会返回BLOB大对象,需要用cast()转换成char类型
select t.type,group_concat(t.name) “name”,group_concat(t.other) “result” from exe t group by t.type;

select t.type,group_concat(t.name) “name”,group_concat(CAST(t.other AS char)) “result” from exe t group by t.type;

参考文章:
http://blog.163.com/lgh_2002/blog/static/44017526201111144316650/

http://blog.csdn.net/priestmoon/article/details/7677452

http://www.jb51.net/article/40179.htm

– 创建表结构DROP TABLE IF EXISTS exe; CREATE TABLE exe ( id int(3) NOT NULL, type int(3) default NULL, name varchar(10) default NULL, other int(3) default NULL, text int(255) default NULL,
MySQL group _concat函数,完整的语法如下: 代码如下: group _concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’]) 代码如下: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字段的值打印在一 ,逗号分隔(默认) 代码如下:select id
之前也分享过一种解决主从表(一对多)关系的分页方法,今天这种方法更为简单。 原理就是将从表以 group _concat的方式进 分组 ,再从service层进 切割处理。 下面直接记录一段sql select t1.id,contract_no,t1.contract_name,t1.begin_date,t1.end_date,t1.sign_date, t1.contract_status,t1.first_party_name,t1.second_party
sql 不允许先过滤再联表 过滤on 后面 and过滤只能过滤副表和 max min group _concat 使用 一对多的情况没有 group by就会出现重复数据1、#{} 解析为一个JDBC预编译语句(prepared statement)的参数标记符,把参数部分用占位符?代替。动态解析为: select * from t_user where username = ? ;而传入的参数将会经过PreparedS
1. concat()功能:将多个字符串连接成一个字符串。语法:concat(str1, str2, ...)说明:返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。用法:(1)不设置分隔符 mysql > select concat('001','小明','85') as result; +-------------+ | result | +-...
2、语法:concat(str1,str2…) 返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。 3、语法:concat(str1,seperator,str2,seperato,…) 返回结果欸连接参数产生的字符串并且有分隔符,如果有任何一个参数为null,则返回值为null 二 conca...
MySQL 中的 group _concat函数是用来将多 数据 拼接 成一个字符串的函数。它的作用和concat函数比较类似,但是 group _concat可以从多 数据中获取需要的字段值,并将其 拼接 成一个字符串返回。 group _concat函数的语法结构如下: SELECT group _concat(column_name) FROM table_name WHERE condition; 其中column_name是需要 拼接 的字段名,table_name是需要查询的表名,condition是查询条件。 使用 group _concat函数可以方便地将符合条件的多 数据 拼接 成一个字符串,例如,在SELECT语句中可以 使用 group _concat函数对某一字段进 拼接 ,以便于显示聚合数据。 同时, group _concat函数还支持类似 group by的功能,即根据指定字段对数据进 分组 ,然后按照 分组 的结果进 拼接 操作。 需要注意的是, group _concat函数返回的 拼接 结果可能会存在长度限制。可以通过设置 group _concat_max_len参数来调整 拼接 结果的最大长度。 总的来说, group _concat函数是一种非常实用的字符串 拼接 函数,在数据聚合和 分组 计算等场景下 使用 较为广泛。