【发布时间】:2014-12-28 07:28:57
【问题描述】:
所以我正在处理 wordpress 中的一个奇怪问题,其中我有一个插件在数据库中创建重复条目 - 但没有意识到这一点 - 因为 wordpress 通过增加 post_id 来“帮助”,使其能够完全忽略所有其他条目它应该简单地覆盖的数据库值。我已经修复了导致该问题的问题,但是我留下了一个非常满的数据库,其中包含 45,000 行,其中许多只是相同数据的重复。
数据库名称是 wp_postmeta,包含 meta_id、post_id、meta_key、meta_value 列。我觉得我只需要删除“meta_value”列的重复条目,保留任何重复值的最新“post_id”。我在谷歌上搜索了一下后想出了这个查询,它似乎应该做我需要做的事情,除了我得到一个版本错误下面是代码和错误:
DELETE FROM wp_postmeta WHERE `meta_value` NOT IN (
SELECT `meta_value` FROM wp_postmeta
GROUP BY `meta_value`
ORDER BY `post_id` DESC
LIMIT 1
);
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
现在,我明白这是在说什么,但我对使用 sql 的工作还不够熟悉,无法通过一个不同的查询来解决这个问题,该查询基本上会抓取所有重复的“元值”并删除那些不是最新的“ post_id'。谁能指出我正确的方向来寻找或帮助我找到更好的解决方案?
【问题讨论】:
标签: mysql sql wordpress phpmyadmin