【发布时间】:2018-03-23 17:07:53
【问题描述】:
MySQL 能否将列转换为行,动态添加行所需的列。我尝试过其他解决方案,但它们似乎无法解决我的独特情况。 这是有数据的表
表 A
+---------+-------------+------+
|driver_id|stage_name |points|
+---------+-------------+------+
|1 |Stage 1 50cc |20 |
+---------+-------------+------+
|1 |Stage 2 50cc |17 |
+---------+-------------+------+
|2 |Stage 1 50cc |17 |
+---------+-------------+------+
|2 |Stage 2 50cc |15 |
+---------+-------------+------+
|3 |Stage 1 75cc |17 |
+---------+-------------+------+
|3 |Stage 2 75cc |15 |
+---------+-------------+------+
|4 |Stage 1 75cc |15 |
+---------+-------------+------+
|4 |Stage 2 75cc |20 |
+---------+-------------+------+
我希望查询格式如下
+---------+-------------+-------------+-------------+-------------+--------------+
|driver_id|Stage 1 50cc |Stage 2 50cc |Stage 1 75cc |Stage 2 75cc | Total Points |
+---------+-------------+-------------+-------------+-------------+--------------+
|1 | 20 | 17 | null | null | 37 |
+---------+-------------+-------------+-------------+-------------+--------------+
|2 | 17 | 15 | null | null | 32 |
+---------+-------------+-------------+-------------+-------------+--------------+
|3 | null | null | 16 | 15 | 31 |
+---------+-------------+-------------+-------------+-------------+--------------+
|4 | null | null | 15 | 20 | 35 |
+---------+-------------+-------------+-------------+-------------+--------------+
如您所见,最后一列的计算基于该驱动程序的各个阶段的总和。 总和现在不是很重要,但首先要有分数,但如果一切皆有可能,那就太棒了。
【问题讨论】:
-
好吧,我不这么认为。但是 MySQL 有一个可能很有趣的 JSON 列类型。调查一下。
-
规范化您的架构,并处理应用程序代码中的数据显示问题。
标签: mysql