0

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

假设我有一个名为puddingin的食谱wp_posts,并且wp_meta我有 3 个meta_keys: "time_for_preparation", "ingredients", "difficulty"

如何编写一个 mysql 查询,它返回带有 3 个 meta_keys 的单行?

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

我想要的是pudding带有 meta_keys 数组的单行

可以吗?

4

1 回答 1

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,但我尝试使用我建议你的url来转换它,所以我认为这将在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
于 2011-10-17T09:58:04.903 回答