Я пытаюсь использовать следующий код, чтобы использовать sql для удаления сообщений с моего сайта Wordpress, которые имеют одинаковое значение для мета-ключа 'source_link'. Каждый раз, когда я запускаю этот код, он не будет удалять дубликаты, и вместо этого я получаю ошибку базы данных на моем сайте. Кто-нибудь видит что-то неправильное в этом коде или знает, почему я получаю ошибки базы данных?Пытается удалить повторяющиеся сообщения, получая ошибку базы данных вместо
$wpdb->query("DELETE p, pm1
FROM
$wpdb->posts as p,
$wpdb->postmeta as pm1,
$wpdb->postmeta as pm2
WHERE
p.ID = pm1.post_id
AND pm1.post_id > pm2.post_id
AND pm1.meta_key = 'source_link'
AND pm1.meta_key = pm2.meta_key
AND pm1.meta_value = pm2.meta_value");
Мой сайт больше не загружается, и вместо этого вы получаете сообщение об ошибке большого жира. Я постараюсь сделать что-то подобное. Я не эксперт sql, хотя вы бы знали, как использовать здесь заявление о соединении? – arian1123
Здесь может быть сложно использовать JOIN, потому что в то время как таблицы P и PM1 связаны с помощью знака =, pm1 и pm2 связаны с помощью знака>. Попробуйте это: 'УДАЛИТЬ р, PM1 ОТ $ wpdb-> должностей р JOIN $ wpdb-> PostMeta как pm1 ON p.ID = pm1.post_id РЕГИСТРИРУЙТЕСЬ $ wpdb-> PostMeta в PM2 ON pm1.post_id > pm2.post_id ГДЕ И pm1.meta_key = 'source_link' И pm1.meta_key = pm2.meta_key И pm1.meta_value = pm2.meta_value' – bbrumm
Тот же вопрос ... ошибка базы данных .. – arian1123