2014-08-23 4 views
1

У меня есть сайт wordpress, у которого есть некоторые meta_key, приписанные к моим сообщениям. Я хочу удалить все сообщения в mysql, который имеет значение meta_keyacest_meta. С помощью этой команды SQL:Mysql удалить все сообщения, которые имеют заданный meta_key

SELECT `post_id` 
FROM `wp_postmeta` 
WHERE `meta_key` 
LIKE 'acest_meta' 
ORDER BY `wp_postmeta`.`post_id` ASC 

я могу видеть все идентификаторы, которые содержат, что данный meta_key, но я не имею удаления Neer флажок. Я вижу сообщение сверху, в котором говорится: «Текущий выбор не содержит уникального столбца. Редактирование сетки, флажок, редактирование, копирование и удаление недоступны». Как я могу удалить все эти сообщения?

ответ

2

Использование Mysql запросы вы можете использовать присоединиться удалением запроса

DELETE p.*,w.* 
FROM `wp_postmeta` w 
JOIN wp_posts p 
ON(p.ID = w.`post_id`) 
WHERE w.`meta_key` LIKE 'acest_meta' 

Выше запроса удалит все посты, и его метаданные содержат meta_key as acest_meta

+1

+1 для другого способа сделать это со своим соединением :) –

1
delete from wp_postmeta 
where post_id in 
     (SELECT post_id FROM wp_postmeta WHERE meta_key = 'acest_meta') 
+0

то же самое для вас :) у нас была такая же идея :) –

2

можно удалить с отборным помощью оператора IN() и поставить выбор в IN, как так

DELETE FROM `wp_postmeta` 
WHERE `post_id` IN 
( SELECT `post_id` 
    FROM `wp_postmeta` 
    WHERE `meta_key` LIKE 'acest_meta' 
) 
Смежные вопросы