MYSQL将列分成具有列名的行
我想将查询结果的列转换为行。是的,这是一个支点,有很多关于支点的文章。请容忍我。这是基于一个子查询而不是一个表和聚合来进行透视 我有一个查询,返回一行:数据库中各种表中的个人详细信息。此查询类似于:MYSQL将列分成具有列名的行,mysql,sql,pivot,Mysql,Sql,Pivot,我想将查询结果的列转换为行。是的,这是一个支点,有很多关于支点的文章。请容忍我。这是基于一个子查询而不是一个表和聚合来进行透视 我有一个查询,返回一行:数据库中各种表中的个人详细信息。此查询类似于: SELECT * FROM ( SELECT wp_usermeta.meta_value AS member_id FROM wp_usermeta WHERE wp_usermeta.user_id=1234 AND wp_usermeta.meta_key=
SELECT *
FROM (
SELECT wp_usermeta.meta_value AS member_id
FROM wp_usermeta
WHERE wp_usermeta.user_id=1234 AND
wp_usermeta.meta_key="member_id") AS m
LEFT JOIN tabMembers ON tabMembers.ID=m.member_id
此返回内容的截断版本(仅6列):
id first last phone level cert
-- ----- ----- ------------ ----- ----
25 john smith 111-222-3333 5 no
我想将结果的列转换为行,如下所示:
Field Value
----- -----
id 25
first john
last smith
email js@example.com
phone 111-222-3333
level 5
cert no
我很难理解如何构造使用此结果生成第二个表的查询。我知道这可能是一系列精选的。。。工会声明
SELECT "id" AS "Field", tabMembers.`id` AS "Value" FROM tabMembers WHERE tabMembers.ID=m.member_id UNION
SELECT "first" AS "Field", tabMembers.`first` AS "Value" FROM tabMembers WHERE tabMembers.ID=m.member_id UNION
SELECT "last" AS "Field", tabMembers.`last` AS "Value" FROM tabMembers WHERE tabMembers.ID=m.member_id UNION
SELECT "phone" AS "Field", tabMembers.`phone` AS "Value" FROM tabMembers WHERE tabMembers.ID=m.member_id UNION
SELECT "level" AS "Field", tabMembers.`level` AS "Value" FROM tabMembers WHERE tabMembers.ID=m.member_id UNION
SELECT "cert" AS "Field", tabMembers.`cert` AS "Value" FROM tabMembers WHERE tabMembers.ID=m.member_id
我想要避免的是运行第一个查询,在每个SELECT中反复提取成员id。。。工会声明
理想情况下,这只是结果列名上的一个循环,它将从表模式中提取出来,但同样,我很难理解这种形式。我无法想象您为什么要这样做。但是您可能会考虑在应用程序CODEDAS中处理数据显示的问题,消费代码已经存在,不是我们的,并且需要这个格式中的数据,定界符<代码> \g < /代码>帮助吗?(而不是
;
)