Mysql动态行到列

时间:2015-04-08 18:33:38

标签: php mysql

布局

https://www.dropbox.com/s/6fu81cqsl25vksd/layout.png?dl=0

链接到图片

示例:

创建声明:

create table rating
(
  id int,
  tieid int,
  inspected datetime,
  rate varchar(50)
);

插入声明:

insert into rating values
(1,1, '0000-00-00 00:00:00', 'E'),
(2,1, '2015-03-31 01:01:22', 'G'),
(3,1, '2015-02-26 01:01:22', 'B'),
(4,2, '0000-00-00 00:00:00', 'E'),
(5,2, '2015-03-31 01:01:22', 'F');

我想要做的就是获得这样的数据输出 似乎无法弄清楚如何使查询正确

tieid |检查1 |率1 |检查2 |率2 |检查3 |率3 |
1 |
| E | 2015-02-26 | B | 2015-03-31 | G |
2 |
| E | 2015-03-31 | F | | |
-------------------------------------------------- -----------------

1 个答案:

答案 0 :(得分:0)

在单个查询中执行此操作,在MySQL中实际上是不可能的,因为mySQL没有任何东西可以像这样。

在这个页面上有一个建议,即使用预准备语句和动态查询生成这可能是可行的:MySQL pivot table query with dynamic columns

在我看来,这种方法非常WTFey,我个人不会使用它,而是采用多种查询方法。