mysql - 在 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, name, '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)
推荐阅读
- scala - 如何让匹配类型在 Scala 3 中正常工作
- react-navigation - 如何将组件链接到 react-bootstrap 导航栏
- c# - Dynamics 365 CE - 货币不能为空
- java - 我想通过反射使用 MySQL,但不得不对 MySQL jar 文件进行硬编码——我可以从 Maven 下载最新版本吗?
- javascript - 单击反应本机按钮时获取“无效的挂钩调用”
- typescript - TypeScript 通用提取函数,BodyInit 的类型错误
- apache-kafka - Kafka Connect - 开发人员将如何针对 Kafka Connect 进行开发?
- c++ - 如何使用 constexpr 逻辑?
- python - 如何使用来自熊猫数据集 X 和 Y 坐标的 plt.imshow() 绘制热图?
- bash - Bash/WSL2:是否可以从 Linux 将文件发送到 Windows 目录?