发现wordpress的wp_postmeta数据库有许多重复的数据以及不需要的数据,今天网上找到解决方法
查询重复数据命令:
SELECT * FROM `wp_postmeta` WHERE (post_id,meta_key) IN ( SELECT post_id,meta_key FROM wp_postmeta GROUP BY post_id,meta_key HAVING COUNT(1) > 1 )
删除数据表中wp_postmeta 中 meta_key中 指定的数据_wp2sinaid命令:
DELETE FROM wp_postmeta WHERE meta_key = '_wp2sinaid';
查询并删除wp_postmeta中重复数据
DELETE FROM wp_postmeta WHERE meta_id IN (
SELECT *
FROM (SELECT meta_id
FROM wp_postmeta
WHERE (
post_id, meta_key, meta_value
)
IN (SELECT post_id, meta_key, meta_value
FROM wp_postmeta
GROUP BY post_id, meta_key, meta_value
HAVING COUNT( 1 ) >1
)
AND meta_id NOT
IN (SELECT MIN( meta_id )
FROM wp_postmeta
GROUP BY post_id, meta_key, meta_value
HAVING COUNT( 1 ) >1
)
) AS stu_repeat_copy
)
注:wp_postmeta是wordpress本来的原表名,如果你在建站的时候有更改的话,那么所有的wp_postmeta都应该改为现在数据表名现有的样子。如你看到的是wp_xxxpostmeta那么你就该改为wp_xxxpostmeta
以上仅作为个人日后使用备用,也相信各位也用得着。
Time: 2020-04-06 21:46 1F
你好,我尝试用了你的“查询并删除wp_postmeta中重复数据”代码,发现不能运行,估计是代码某个地方有误,能不能帮忙复查下你的文章中代码有没有需要修改的地方? 谢谢!
Time: 2020-04-07 09:14 1f
@Jerry Song 我个人弄是对的,wp_postmeta你在建站的时候有没有改呢。你看看一是wp_postme是不是别的名称呢