Выборка из базы

Возникла необходимость поменять статус у всех записей в определенной рубрике.
Сформировал запрос

UPDATE wp_posts SET post_status = 'pending' 
WHERE post_status LIKE 'publish' AND post_category = 393

Не работает. Пригляделся к базе у всех записей post_category = 0.
Как сделать рабочий запрос и если не тяжело, объясните почему везде post_category = 0

Доброе утро! 🙂 post_category уже давно не используется. Подумайте сами, что может быть в этом поле, если пост может относиться к нескольким категориям оновременно? Через запятую, что ли, перечислять?

Ищите по форуму, я совсем недавно в теме про таксономию приводил пример корректного запроса для 2.3/2.5.

SELECT $wpdb->posts.* FROM $wpdb->posts INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) WHERE $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id = '$cat' AND post_type = 'post' AND post_status = 'publish'

Это?
Мне нужно сделать этот запрос в самой базе, чтобы не перелопачивать сотню записей. Mysql для меня если и не темный лес, то дремучая чаща – точно.

Типа оно.

Не поможете преобразовать это под мою задачу?

Anonymous
Отправить
Ответ на: