美文网首页
SQL-GROUP_CONCAT拼接字符串

SQL-GROUP_CONCAT拼接字符串

作者: 蕴重Liu | 来源:发表于2019-08-21 09:50 被阅读0次

原数据

a  1
a  2
b  5
c  6
b  2

预想效果图

a  1,2
b  5,2
c  6

聚合函数,在group语句中使用,可以将多行的字符串按分组整合成一个字符串

语法:
GROUP_CONCAT([DISTINCT] expr [,expr ...][ORDER BY {unsigned_integer | col_name | expr}[ASC | DESC] [,col_name ...]][SEPARATOR str_val])
假定:有一张表是UserRole存储User对应Role关系,其有两列userId,RoleCode,我们可以通过GROUP_CONCAT来取出用逗号分隔的用户角色

select userId,GROUP_CONCAT(RoleCode SEPARATOR  ',') from UserRole
需要注意,GROUP_CONCAT函数默认的最大可连接字符串的长度是1024,如果连接的字符串长度超过1024的话会被截断,不过我们可以通过设置group_concat_max_len的值来修改GROUP_CONCAT的最大长度。

例如:
SET SESSION group_concat_max_len= 99999;
select userId,GROUP_CONCAT(RoleCode SEPARATOR  ',') from UserRole

实际应用

--单表
select tt.id,GROUP_CONCAT(tt.ROLE_NAME SEPARATOR  ',') as role_name from sys_uer_role tt GROUP BY tt.id

--基于三表联查
select tt.id,GROUP_CONCAT(tt.ROLE_NAME SEPARATOR  ',') as role_name from (select u.id,r.ROLE_NAME 
from sys_user u 
JOIN sys_user_role ur on u.id=ur.user_id 
JOIN sys_role r on ur.ROLE_ID=r.ID)tt
GROUP BY tt.id

相关文章

  • SQL-GROUP_CONCAT拼接字符串

    原数据 预想效果图 聚合函数,在group语句中使用,可以将多行的字符串按分组整合成一个字符串 实际应用

  • R 包学习 - stringr()

    stringr: R 语言字符串处理包 字符串拼接函数str_c: 字符串拼接。str_join: 字符串拼接,同...

  • Swift5.0 字符串(String)详解

    1.字符串拼接 + 拼接 \() 拼接 2.字符串是否为空判断 3.字符串长度 4.字符串比较 == > < 5....

  • 字符串

    遍历 拼接 字符串拼接格式化 字符串的截取

  • Python 字符串详解

    字符串替换 字符串拼接 1.两个字符串拼接 2.打印拼接 字符串按照字符切割 字符串比较 字符串长度 字符串是否包...

  • 字符串api

    字符串 增 concat() //拼接任意字符串,并返回拼接后的字符串 加号 ➕ 同上 字符串 ...

  • 批量根据id修改字段

    update tableName set 字段名 = concat(id,'拼接字符串','拼接字符串');

  • 142字符串的高效处理

    1、字符串的拼接 2、StringBuilder类(字符串构建器) 使用StringBuilder来拼接字符串: ...

  • go语言string之Buffer与Builder

    操作字符串离不开字符串的拼接,但是Go中string是只读类型,大量字符串的拼接会造成性能问题。 字符串拼接的方式...

  • 字符串操作

    字符串操作 拼接 截取 长度 相等 包含 替换 去除开头末尾字符串 字符串分割 字符串拼接

网友评论

      本文标题:SQL-GROUP_CONCAT拼接字符串

      本文链接:https://www.haomeiwen.com/subject/cvavsctx.html