0

wordpress では、カスタム投稿はテーブルに保持され、その ID は次の列を持つwp_posts別のテーブルで参照されますwp_metapost_id, meta_key, meta_value

puddingでと呼ばれるレシピがwp_postsあり、 でwp_meta3 つあるとしましょうmeta_keys: "time_for_preparation", "ingredients", "difficulty"

3 つの meta_keys を含む 1 つの行を返す mysql クエリを作成するにはどうすればよいですか?

内部結合を行うと、それぞれが同じwp_postsデータと 1 つの異なる meta_keyを持つ "プリン" の 3 つのセットが表示されます。

私が欲しいのは、puddingmeta_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 に答える