如何解决在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 举报,一经查实,本站将立刻删除。