Joe*_*Joe 4 mysql sql wordpress
我的 Wordpress wp_postmeta 表中有一些重复的行。实际上,有数百种旧的 postmeta 数据被列出 2 或 3 次的情况...可能来自过去完成的一些数据导入过程...所以我需要从 wp_postmeta 表中删除不需要的重复行,只留下具有较高 meta_id 编号的行...举例说明 wp_postmeta 表的样子:
meta_id | post_id | meta_key | meta_value
155153 | 177115 | owner_img | https://www.example.com/a.jpg
176231 | 177115 | owner_img | https://www.example.com/a.jpg
193983 | 177115 | owner_img | https://www.example.com/a.jpg
Run Code Online (Sandbox Code Playgroud)
请注意,这些是 wp_post 表上同一篇文章的 3 个元数据(因为它具有相同的 post_id)...所以我只需要保留最新的元数据行,并删除每个元键重复元数据的所有其他实例...我怎样才能做到这一点?
DELETE wp_postmeta.*
FROM wp_posts
INNER JOIN wp_postmeta ON wp_postmeta.post_ID = wp_posts.ID
Run Code Online (Sandbox Code Playgroud)
经过多次研究,我终于弄清楚了,以防有人在寻找答案......
DELETE t1 FROM wp_postmeta t1
INNER JOIN wp_postmeta t2
WHERE t1.meta_id < t2.meta_id
AND t1.meta_key = t2.meta_key
AND t1.post_id=t2.post_id;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2547 次 |
| 最近记录: |