我有以下 SQL 查询,它能够获取和删除超过 X 天的自定义帖子类型的所有帖子。
SELECT * FROM `wp_posts`
WHERE `post_type` = ‘clothing’
AND DATEDIFF(NOW(), `post_date`) > 2
DELETE * FROM `wp_posts`
WHERE `post_type` = ‘clothing’
AND DATEDIFF(NOW(), `post_date`) > 2
但是从我在网上读到的,上面的代码似乎并没有真正删除帖子的元信息,所以我仍然有一堆剩余的数据。
我的问题是,我该如何修改这段代码,以便所有相关的元信息也从已删除的帖子中删除?
谢谢
最佳答案
您可以通过连接表来删除数据。在 WP 中,wp_posts
和 wp_postmeta
与 wp_postmeta
表中的 post_id
相关。使用下面的查询将从两个表中删除。但是,还有其他选项,即您可以在 wp_posts
上删除后触发触发器,以从相关表中删除数据或使用删除级联的外键约束
delete
p,pm
from wp_posts p
join wp_postmeta pm on pm.post_id = p.id
where p.post_type = 'clothing'
and DATEDIFF(NOW(), p.post_date) > 2
关于mysql - Wordpress SQL 删除自定义帖子类型和元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26992969/