查询以获取结果中的列名称和值?

时间:2017-05-03 11:13:36

标签: php mysql sql

我有一个id为第一个字段的表,另一个字段带有description字段。 E.g。

id | color | length | year | land | name
---------------------------------------------------
3 | blue | long | 1988 | Netherlands | Jan
4 | yellow | short ..etc.

我想在每一行上创建一个新表,其中包含以下字段:id,fieldname(来自我的第一个表),该字段的值。像这样:

3 | color | blue
3 | length | long
3 | year | 1988
3 | land | Netherlands
3 | name | Jan
4 | color | yellow
4 | length | short
etc.

有人知道如何在查询中执行此操作吗? (或者在php脚本中以其他方式?)

谢谢和亲切的问候,阿里

1 个答案:

答案 0 :(得分:0)

首先,您需要兼容的数据类型来执行您想要的操作。那通常是一个字符串。

然后,您可以通过多种方式完成此操作。 MySQL中最简单的可能是union all

select id, 'color' as which, color from t union all
select id, 'length' as which, cast(length as char) from t union all
. . .