我需要一个 SQL 来通过 post_title 清理我的 wordpress 数据库。
例如,以下内容从 wordpress 中查找标题中包含单词“apple”的所有帖子:
SELECT * FROM wp_posts WHERE post_title LIKE '%apples%';
这会删除那些相同的帖子:
DELETE FROM wp_posts WHERE post_title LIKE '%apples%';
但是,我不确定如何按标题删除其他表中的所有引用,因为我不知道它们与 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 之间的关系(除了可能受第一个查询影响的任何其他表)。
有人可以在这里帮助我吗?
谢谢大家的考虑。