美文网首页
MySQL group_concat使用

MySQL group_concat使用

作者: 帮我的鸵鸟盖个章 | 来源:发表于2019-06-29 14:40 被阅读0次

MySQLgroup_concat函数能将字段的值以特定符号相连。

比如现在有user,role,user_role三张表,简单的多对多关系。现在要查出一个用户所有角色名称,并且角色名称/相连,展示形式为AAA/BBB/CCC

使用group_concat函数能达到这一效果,而不需要程序去处理。

先看看用户对应的角色:

select ur.user_id,ur.role_id,r.role_name
from sys_user_role ur
join sys_role r
on r.role_id = ur.role_id
where r.del_flag = '0' order by ur.user_id;

结果如图:

1.png

使用group_concat将用户的角色用/连起来:

select ur.user_id, group_concat(DISTINCT r.role_name separator '/') as roleNames from sys_user_role ur
join sys_role r
on r.role_id=ur.role_id
where r.del_flag='0' group by ur.user_id order by ur.user_id;

效果如下:

2.png

注意理解 distinct,group bySQL语句中的作用。

相关文章

网友评论

      本文标题:MySQL group_concat使用

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