#mysql
#mysql
Вопрос:
Я пытаюсь запустить этот SQL-запрос, чтобы очистить старые данные
DELETE FROM wp_postmeta
where wp_postmeta.post_id=(
SELECT post_id FROM wp_postmeta pm
WHERE (meta_key like '_form_id') AND
pm.post_id NOT IN (SELECT ID FROM wp_posts))
Получение ошибки
«Таблица «wp_postmeta» указывается дважды, как в качестве целевого объекта для «УДАЛЕНИЯ», так и в качестве отдельного источника данных»
Что такое правильный SQL?
Спасибо.
Комментарии:
1. не могли бы вы попробовать использовать in вместо = (eqaul)
2. Если вы не используете сопоставление с учетом регистра, «нравится» здесь бесполезно
Ответ №1:
Похоже, вы слишком усложняете проблему, вам здесь не нужен подзапрос. Кроме того, я предполагаю, что вам не хватает процента входа в LIKE
систему.
DELETE FROM wp_postmeta WHERE meta_key LIKE '%_form_id'
AND post_id NOT IN (SELECT ID FROM wp_posts);
Комментарии:
1. Это выглядит как подзапрос