您现在的位置是:群英 > 数据库 > MySQL数据库
MySql怎么操作列转行函数,要注意什么
Admin发表于 2022-10-21 18:14:41821 次浏览
在实际案例的操作过程中,我们可能会遇到“MySql怎么操作列转行函数,要注意什么”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。

在mysql中,列转行函数是“group_concat()”函数;该函数用于将非空列值按照分组条件进行合并并最终返回,如果其中有空值则返回的结果是空,语法为“select group_concat(name separator ';')列名 from 表名;”。

本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

mysql列转行函数是什么

GROUP_CONCAT(expr)该函数将非空列值按照分组条件进行合并并最终返回。如果有空值,则返回为空

在MySQL中,如何将列转成一行?比如一个一个商品会属于多个分类(如华为手机可以是手机分类,也可以是数码分类),如何将此商品在一条数据中展现所有分类。

思路很简单,通过MySQL函数group_concat即可解决。

创建测试表:

create table test.test_mysql_liezhuanhang (
id         bigint auto_increment comment '主键',
name       varchar(100),
age        int(5),
primary key (id)
)engine=innodb default charset=utf8mb4 comment='测试表'
登录后复制

导入测试数据:

insert into test.test_mysql_liezhuanhang (name, age) values ('李威', 18), ('李威', 19), ('李威', 18), ('李白', 20), ('李白', 20), ('李白', 19);
登录后复制

展现所有名字,以分号分割,默认以,分割

select group_concat(name  separator ';') concat
  from test.test_mysql_liezhuanhang 
;
登录后复制

展现所有名字,并将相同名字去重

select group_concat(distinct name) concat
  from test.test_mysql_liezhuanhang 
;
登录后复制

展现所有年龄,去重并以年龄升序排序

select group_concat(distinct age order by age) concat
  from test.test_mysql_liezhuanhang 
;
登录后复制


感谢各位的阅读,以上就是“MySql怎么操作列转行函数,要注意什么”的内容了,通过以上内容的阐述,相信大家对MySql怎么操作列转行函数,要注意什么已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注群英网络,群英网络将为大家推送更多相关知识点的文章。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: mysql列转行
相关信息推荐
2022-05-14 09:45:49 
摘要:本篇文章给大家介绍了关于MySQL读写分离的相关知识,希望对大家有帮助。
2022-05-09 18:01:15 
摘要:mysql行转列的方法:1、利用“SUM(CASE 表名 WHEN 字段名 THEN score ELSE 0 END) as 字段名”操作转换;2、利用“SUM(IF(表名=字段名,score,0)) as 字段名”操作转换。
2022-05-16 17:20:24 
摘要:在oracle中,可以使用“insert”语句来向表中增加数据,该语句可以向数据库已有的表中插入一行或者多行元组数据,语法“insert into 表名(列名1,列名2,列名3.....)values(值1,值2,值3.....);”。
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部