Обновление одной таблицы Wordpress SQL на основе информации из другой - PullRequest
0 голосов
/ 16 апреля 2011

Я пытаюсь запустить команду SQL в базе данных Wordpress. Я хочу обновить некоторые записи в столбце post-status таблицы wp_6_posts со значением "trash". Записи, которые я хочу обновить, перечислены в таблице wp_6_term_relationships, где term_taxonomy_id = 13.

Затем для всех этих совпадений я хочу взять отношения object_id from wp_6_term и сопоставить их со столбцом ID в wp_6_posts.

Затем я хочу обновить только строки wp_6_posts, где значение ID соответствует значению object_id из таблицы wp_6_terms_relationships.

Это самое близкое, что я получил, но оно просто устанавливает значение post_status ВСЕХ сообщений в wp_6_posts на "trash". Я знаю, что у меня просто отключен синтаксис или немного логики.

UPDATE wp_6_posts   
SET post_status = "trash"
WHERE EXISTS
  ( SELECT object_id
    FROM wp_6_term_relationships
    WHERE term_taxonomy_id = "13"
    AND object_id = ID
)

Ответы [ 2 ]

1 голос
/ 16 апреля 2011
UPDATE wp_6_posts   
SET post_status = "trash"
WHERE id IN
  ( SELECT object_id
    FROM wp_6_term_relationships
    WHERE term_taxonomy_id = "13"
  )
0 голосов
/ 19 апреля 2011

Это ответ, который работает для меня, данный мне кем-то лучше в SQL. Этот запрос использует слаг категории вместо идентификатора категории #. Я не совсем понимаю, но это работает - все посты категории "продано" выдают post_status "trash".

update wp_posts set post_status = 'trash'
where `id` in
(SELECT object_id
FROM wp_term_relationships wtr
JOIN wp_term_taxonomy wtt ON ( wtr.term_taxonomy_id = wtt.term_taxonomy_id ) 
JOIN wp_terms wt ON ( wtt.term_id = wt.term_id ) 
WHERE wtt.taxonomy = 'category'
AND wt.slug = 'sold')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...