Mysql 透视SQL数据-将行分组为列
我将数据以以下格式存储在mySQL数据库中:Mysql 透视SQL数据-将行分组为列,mysql,wordpress,pivot,Mysql,Wordpress,Pivot,我将数据以以下格式存储在mySQL数据库中: +------------+------------+-----------+ | id | field | value | +============+============+===========+ | 1 | first | Bob | +------------+------------+-----------+ | 1 | last |
+------------+------------+-----------+
| id | field | value |
+============+============+===========+
| 1 | first | Bob |
+------------+------------+-----------+
| 1 | last | Smith |
+------------+------------+-----------+
| 2 | first | Jim |
+------------+------------+-----------+
| 2 | last | Jones |
+------------+------------+-----------+
我希望它按如下方式返回:
+------------+------------+-----------+
| id | first | last |
+============+============+===========+
| 1 | Bob | Smith |
+------------+------------+-----------+
| 2 | Jim | Jones |
+------------+------------+-----------+
我知道这似乎是一种愚蠢的数据存储方式,但这只是我真正拥有的一个简单例子。这个表格是用WordPress插件的这种方式格式化的,我想让它在不重写插件的情况下工作
据我所知,我无法将PIVOT与mySql结合使用。有没有类似于PIVOT的东西可以用来实现我的目标?试试这个PIVOT查询:
SELECT id,
MAX(CASE WHEN field = 'first' THEN value ELSE NULL END) AS first,
MAX(CASE WHEN field = 'last' THEN value ELSE NULL END) AS last
FROM yourTable
GROUP BY id
按照下面的链接进行运行演示:
尝试此数据透视查询:
SELECT id,
MAX(CASE WHEN field = 'first' THEN value ELSE NULL END) AS first,
MAX(CASE WHEN field = 'last' THEN value ELSE NULL END) AS last
FROM yourTable
GROUP BY id
按照下面的链接进行运行演示:
试试这个;)
试试这个;)
可能重复的工作很好!非常感谢,非常好!非常感谢。