微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在phpmyadmin中从列转换为行

如何解决在phpmyadmin中从列转换为行

我有一个数据库,我需要在其中将列转换为行。

+--------+------+-----+-----+
| ID     | Name |  A  |  B  |
+--------+------+-----+-----+
|   1    |  xyz |  3  |  1  |
|   2    |  abc |  4  |  6  |
+--------+------+-----+-----+ 

如果可能减少重复,我需要显示这样 并制作另一个表来传递其ID?

+--------+----------+-----------+---------+
| ID     |  Name    |   Type    |  Cost   |
+--------+----------+-----------+---------+
|   1    |    xyz   |    A      |   3     |
|   1    |    xyz   |    B      |   1     |
|   2    |    abc   |    A      |   4     |
|   2    |    abc   |    B      |   6     |
+--------+----------+-----------+---------+

请给我该查询的所有解决方案。...

预先感谢

解决方法

您要取消透视将列改为行。在MySQL中,通常使用union all

select id,name,'A' as type,A as cost from mytable
union all select id,'B',B from mytable

非常新的MySQL版本支持横向连接,这有助于缩短语法,并提高查询效率(该表仅扫描一次):

select t.id,t.name,x.*
from mytable t
cross join lateral (select 'A',a union all select 'B',b) x(type,cost)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。