【问题标题】:Mysql - Wordpress: list custom posts with more than one metadata valueMysql - Wordpress:列出具有多个元数据值的自定义帖子
【发布时间】:2011-12-09 03:20:44
【问题描述】:

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

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

我如何编写一个 mysql 查询,它返回包含 3 个元键的单行?

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

我想要的是单行 pudding 和一个 meta_keys 数组

可以吗?

【问题讨论】:

  • 你需要像这样的布丁输出"time_for_preparation, ingredients,difficulty"
  • 你需要meta_keys逗号分隔在一列
  • 逗号分隔会很好,但理想情况下,我需要带有 meta_key "title" 的列,其中包含 meta_value "value"......就像所有内容都在 wp_posts 表中的单行中一样

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


【解决方案1】:
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

【讨论】:

  • 更像这样: create table wp_post ( id int identity(1,1), name nvarchar(200) ) create table wp_meta ( id int identity(1,1), postid int, metakey nvarchar (200) metaname nvarchar(200) ) 插入 wp_post 选择'Apple' 插入 wp_meta 选择 1,'color','red' 插入 wp_meta 选择 1,'brand','del monte' 插入 wp_meta 选择 1,' weight','1oz' 我想返回一组数据,例如 name=Apple, color=red, brand=del monte,weight=1oz 感谢您的帮助!
  • 你在 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
猜你喜欢
  • 1970-01-01
  • 2013-02-18
  • 2021-08-13
  • 2013-06-30
  • 1970-01-01
  • 2015-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多