开发者社区> 问答> 正文

MySQL-将表转换为其他表

目前我可能看不到非常清楚的信息,但是我在MySQL中有一个表,如下所示:

ID | a | b | c 1 | a1 | b1 | c1 2 | a2 | b2 | c2 出于某种原因(实际上是基于ID,在另一个表上的联接,但是我认为如果有人可以帮助我完成这一部分,我自己可以自己做剩下的事情),则我需要这些行像这样:

1 | a1 | a 1 | b1 | b 1 | c1 | c 2 | a2 | a 2 | b2 | b 2 | c2 | c 所以基本上,我需要查看,如行: ID,columntitle,value 有没有什么办法可以轻松地做到这一点?

展开
收起
保持可爱mmm 2020-05-10 20:05:50 381 0
1 条回答
写回答
取消 提交回答
  • 您正在尝试取消数据透视。MySQL没有unpivot函数,因此您将必须使用UNION ALL查询将列转换为行:

    select id, 'a' col, a value from yourtable union all select id, 'b' col, b value from yourtable union all select id, 'c' col, c value from yourtable 请参阅带有演示的SQL Fiddle。

    也可以使用CROSS JOIN:

    select t.id, c.col, case c.col when 'a' then a when 'b' then b when 'c' then c end as data from yourtable t cross join ( select 'a' as col union all select 'b' union all select 'c' ) c来源:stack overflow

    2020-05-10 20:06:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像