首页 文章

wordpress:用于通过post_title清理帖子,术语,关系,分类(和其他关联)的SQL

提问于
浏览
3

我需要一个SQL来通过post_title来清理我的wordpress数据库 .

例如,以下内容查找wordpress中包含 Headers 中“apple”一词的所有帖子:

SELECT * FROM wp_posts WHERE post_title LIKE '%apples%';

这删除了相同的帖子:

DELETE FROM wp_posts WHERE post_title LIKE '%apples%';

但是,我不知道如何通过 Headers 删除其他表中的所有引用很好,因为我不知道它们与wp_posts表的关系 . 我认为您可以通过以下删除包含“apple”的帖子后从postmeta中删除与帖子相关的行:

DELETE FROM wp_postmeta WHERE NOT EXISTS (SELECT * FROM wp_posts WHERE wp_postmeta.post_id = wp_posts.ID)

这应该有效,因为在初始SQL命令之后,您现在在wp_postmeta中有行而没有与wp_posts表的关系并删除所述行 . 简单 .

但我不知道如何删除类别和标记引用,因为我不确定wp_posts和wp_terms,wp_term_relationships或wp_term_taxonomy之间的关系(除了可能受第一个查询影响的任何其他表) .

有人可以帮我吗?

谢谢你的所有考虑 .

1 回答

  • 0

    如果您的数据库支持级联,请使用它 . 您提出的DELETE SQL或类似的东西是最后的东西 . 保持连接数据的列名不共享名称很常见;其他表中缺少tablename.post_id并不令人惊讶 .

相关问题