Mysql - Wordpress:列出具有多个元数据值的自定义帖子

时间:2011-10-17 08:57:11

标签: mysql wordpress join foreign-keys custom-fields

在wordpress中,自定义帖子保存在wp_posts表格中,其ID在另一个表格wp_meta中引用,其中包含以下列post_id, meta_key, meta_value

假设我在pudding中有一个名为wp_posts的食谱,在wp_meta我有3 meta_keys: "time_for_preparation", "ingredients", "difficulty"

如何编写一个mysql查询,使用3个meta_keys返回一行?

如果我进行内连接,我会看到3组“布丁”,每组都有相同的wp_posts数据和一个不同的meta_key

我想要的是一行pudding,其中包含一系列meta_keys

可以做到吗?

1 个答案:

答案 0 :(得分:0)

create table wp_post
( 
 id int identity(1,1),
 name nvarchar(200) 
)


create table wp_meta
(
  id int identity(1,1),
   postid int,
  metaname nvarchar(200)
)



insert into wp_post select 'Apple'

insert into wp_meta select 1,'red'

select * from wp_post
select  * from wp_meta


select *
 ,stuff((select  ', ' +metaname from wp_meta where postid=w.id for xml path('')), 1, 1,' ')
 from wp_post as w

这完全由我在MS SQL Server中完成

将此更改为您可以看到此帖子有MYSql how-do-i-create-a-comma-separated-list-using-a-sql-query

<强>被修改

因为我没有mysql,但我试图通过使用我建议你的网址来转换它,所以我认为这将在mysql中,如下所示

SELECT w.name,
         GROUP_CONCAT(m.meta_key, ',')
    FROM wp_post w
    JOIN wp_meta m ON m.post_id= w.id    
GROUP BY w.name