mysql怎么列转行 mysql的列转行

mysql列转行(逗号分隔)

mysql查询含逗号的数据,将逗号拆分为多行展示:

郎溪ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

原始数据如下:

现在因为新的需求,需要将这些数据转化为如下形式:

假设我们需要处理的表结构为:

使用如下sql语句即可实现需求:

查询的主要思路为,原表与一个包含连续自增长字段的表进行join,得到字符串分隔后的索引值,其中 length( a.name ) - length( REPLACE ( a.name, ',', '' ) ) + 1 语句获得字符串逗号分隔之后得到的数据长度,两表关联之后,会得到相应行数的数据。比如,

在join之后会得到:

之后对查询中的结果,使用substring_index方法进行截取,然后得到我们自己想要的数据。

MySql列转行的技巧

列转行:利用max(case when then)

`max``---聚合函数 取最大值`

`(`case course when '语文' then score else 0 end ) ---判断`

` as 语文``---别名作为列名`

mysql 列转行

select typeId,value1 from 表

union

select typeId,value2 from 表

union

select typeId,value3 from 表

union

select typeId,value4 from 表

........

union

select typeId,value10 from 表

注意,以上共19行(10行select、9行union)是一个语句,中间没有分号,这个语句的结果就是你想要的结果。

mysql中列转行,并多个字段转到一行中的一个字段上,中间用逗号分开

select ID,group_concat(NAME) as NAME from table group by ID;

select ID,group_concat(NAME SEPARATOR ';') as NAME from a group by ID;


新闻标题:mysql怎么列转行 mysql的列转行
文章转载:http://bzwzjz.com/article/ddipipj.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 定制网站设计 网站建设推广 重庆网站建设 网站制作 重庆外贸网站建设 成都商城网站制作 品牌网站建设 成都网站设计 成都品牌网站建设 品牌网站建设 攀枝花网站设计 高端定制网站设计 外贸网站建设 重庆电商网站建设 网站建设公司 高端网站设计 成都做网站建设公司 营销型网站建设 网站建设 定制网站建设多少钱 手机网站设计 手机网站制作