MySQL group_concat使用

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语句中的作用。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MySQL&python交互 一、Python操作MySQL步骤(原始的执行SQL语句) 引入pymysql模块 ...
    梦醒家先生阅读 4,158评论 0 0
  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 5,869评论 0 2
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 10,855评论 0 9
  • ORACLE自学教程 --create tabletestone ( id number, --序号usernam...
    落叶寂聊阅读 4,827评论 0 0
  • 下午六点来钟把儿子接回来,一路上儿子和同学聊的很欢,我再一次确信儿子和别人的交流一点问题都没有。他同学下车后,儿子...
    飞吧_宝贝阅读 1,124评论 0 0