首页 > 解决方案 > 我想从 wordpress 数据库中进行选择

问题描述

数据库的结构如下:

id | meta-key | meta-value

1  | client   | John

1  | bday     | today

我希望它是

id | client | bday

1  | John   | today

有很多行,例如 client 和 bday,我想在显示或插入另一个表时将其中一些转换为列

我试过这样的事情:

SELECT p1.meta_value, wph0_posts.post_title, p2.meta_value as client, p3.meta_value as end_date, p4.meta_value as description
FROM wph0_postmeta p1
INNER JOIN wph0_posts ON p1.post_id = wph0_posts.ID
INNER JOIN wph0_postmeta p2 ON
p1.post_id = p2.post_id AND
p2.meta_key = 'client'
INNER JOIN wph0_postmeta p3 ON
p1.post_id = p3.post_id AND
p3.meta_key = 'end_date'
INNER JOIN wph0_postmeta p4 ON
p1.post_id = p4.post_id AND
p4.meta_key = 'description';

我可以得到一些提示吗?db'es 很新

标签: mysqlselect

解决方案


感谢您的帮助,以下工作:

SELECT wph0_postmeta.post_id, 
GROUP_CONCAT( if(wph0_postmeta.meta_key='client',wph0_postmeta.meta_value,NULL) ) AS Nume, 
GROUP_CONCAT( if(wph0_postmeta.meta_key='end_date',wph0_postmeta.meta_value,NULL) ) AS Descriere 
FROM wph0_postmeta GROUP BY wph0_postmeta.post_id

我只从 wph0_postmeta 中提取了名称和一些东西并使用了 if 语句。我现在可以添加另一个 group_concat 并从 meta_key 添加另一个列,我在这里获得了枢轴的链接:

需要表值作为列标题


推荐阅读