MySQL-将行动态转换为列

时间:2018-09-14 07:32:53

标签: php html mysql

我的值表当前看起来像这样:

  | id | row_number | field_name   | field_value |
____________________________________________________
  | 1  | 1          | Email        | aaa         |
  | 2  | 1          | First Name   | bbb         |
  | 3  | 1          | Last Name    | ccc         |
  | 4  | 2          | Email        | ddd         |
  | 5  | 2          | First Name   | eee         |
  | 6  | 2          | Last Name    | fff         |

最终,我需要一个会产生如下结果的sql查询:

 | row_number | Email | First Name | Last Name |
____________________________________________________
 | 1          | aaa   | bbb        | ccc
 | 2          | ddd   | eee        | fff

但是...

我需要结果来补偿不同数量的列以及是否有不同的值。

我认为,如果 values-table 始终具有包含值“ First Name”,“ Last Name”和“ Email”的行,则产生上表所示的第一个结果将很容易在“字段名称”列中。

不幸的是,这些数据并不总是相同的。有时表中可能有类似以下内容的条目:

  | id | row_number | field_name   | field_value |
____________________________________________________
  | 1  | 1          | ZZZZ         | aaa         |
  | 2  | 1          | XX           | bbb         |
  | 3  | 2          | ZZZZ         | ccc         |
  | 4  | 2          | XX           | ddd         |
  | 5  | 3          | ZZZZ         | eee         |
  | 6  | 4          | XX           | fff         |

因此,现在,每个唯一的“行号”只有两个“ field_name”(以前只有3个)。不仅如此,“ field_name”值本身也不同于以前的第一个 values-table

中的值

无论如何,我可以纠正一个mysql查询,该查询将帮助我将行作为列来产生结果,而不管行值是多少还是有多少?

0 个答案:

没有答案