Правильно ли я делаю подзапрос?

Есть wordpress.
Есть таблицы wp_posts и wp_postmeta

Делаю вот такое
select count(`pm`.`meta_id`) from `wp_postmeta` as `pm` where `pm`.`post_id` in(
    (SELECT `p`.`ID` FROM `wp_posts` as `p` where `p`.`post_content`='' limit 1) as x
)


Запрос выполняется очень долго, в итоге дает ошибку 504 timeout
Что я делаю не так? Я даже limit 1 поставил.

В будущем хочу удалить все записи из wp_postmeta принадлежащие постам, контент которых пуст.
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 3
Decadal
@Decadal
upd: Убери as x и лишние скобки. должно быть in (запрос).
Ответ написан
LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии
в некоторых версиях mysql не поддерживается лимит в подзапросах, попробуй убрать
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT COUNT(*) 
  FROM `wp_postmeta` as `pm` 
  JOIN `wp_posts` AS `p` ON `p`.`ID` = `pm`.`post_id` AND `p`.`post_content` = ''
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы