简洁版本:
我需要自定义查询结果,使用一个值作为列名,另一个值作为列的值。它还需要是自动的(不是硬编码,数百个可能的“元键”)。
长版:
我正在使用 Wordpress 的“用户元”结构,其中单个用户有一个用户 ID,另一个表包含与用户相关的“元数据”。
这个元数据是任意的,只有四列:
meta_id
, post_id
, meta_key
, meta_value
.
我想对某个用户进行 SQL 查询,并对结果进行格式化,以便所有元数据都像行一样被格式化,其中meta_key
是列名,meta_value
是列的值。
示例数据库:
-- wp_users
* ID | username | email
35 | radgh | radgh@example.org
-- wp_usermeta
* meta_id | user_id | meta_key | meta_value
1 | 35 | first-name | Radley
2 | 35 | last-name | Sustaire
3 | 35 | newsletter | on
我的查询(我需要找出 (???) 部分,它将生成元键/值对作为假列)
SELECT
`users`.ID as 'user_id',
`users`.username as 'username',
`users`.email as 'email',
(???)
FROM `wp_users` `users`
INNER JOIN `wp_usermeta` `meta`
ON `users`.ID = `meta`.user_id
WHERE `wp_users`.ID = 35
期望的结果:
* user_id | username | email | first-name | last-name | newsletter
35 | radgh | radgh@example.org | Radley | Sustaire | on
在这个类似的问题中,所选答案使用硬编码字段。我想自动执行此操作。:)