Mysql - Wordpress: список пользовательских сообщений с более чем одним значением метаданных - PullRequest
0 голосов
/ 17 октября 2011

В WordPress пользовательские записи хранятся в таблице wp_posts, а их идентификаторы ссылаются в другой таблице wp_meta со следующими столбцами post_id, meta_key, meta_value

Допустим, у меня есть рецепт с именем pudding в wp_posts и в wp_meta у меня есть 3 meta_keys: "time_for_preparation", "ingredients", "difficulty"

Как мне написать запрос mysql, который возвращает мне одну строку с 3 мета-ключами?

Если я это сделаювнутреннее объединение, я просто увижу 3 набора «пудинга», каждый с одинаковыми wp_posts данными и ОДНЫМ разным meta_key

То, что я хочу, это одна строка pudding с массивом meta_keys

это можно сделать?

1 Ответ

0 голосов
/ 17 октября 2011
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-разделенный список-используя-sql-запрос

Отредактировано

, поскольку у меня нет 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...