sql查询批量删除发布日期的woocommerce产品

问题描述 投票:1回答:1

我们的商店网站上有超过50k的产品,其中大约一半需要删除。我们使用wpallimport对产品进行了全新上传,并设置了删除任何不在上传但不起作用的产品的选项。相反,它只是添加了我们的csv中的所有。我们尝试使用BulkWP进行批量删除,但它会导致网站崩溃。我一直在手动删除它们,但一次只能做60个是安全的,不会崩溃。我已经将内存添加到1024,执行时间增加到600,输入变量到3000,但它仍然不喜欢它。我们想要使用sql查询删除所有发布日期早于上次导入的产品,因为这可能是最快捷的方式,但是想看看这是否可行,因为我在这里使用X是多少天:

DELETE FROM 'wp_posts' WHERE 'post_type' = 'product' AND DATEDIFF(NOW(), 'post_date') > X

一旦产品被删除后,是否还需要删除任何其他数据?如果是这样,哪个查询可以删除特定于那些具有较旧发布日期的元素?完全欣赏它

mysql wordpress woocommerce
1个回答
0
投票

Woocommerce产品主要位于2个表中,wp_posts和wp_postmeta。如果要删除它们,则必须使用JOIN子句组合这些表中的产品行。

假设您要删除2018年9月1日之前添加的每个产品。您可以在下面使用此查询。

DELETE wp_posts, wp_postmeta FROM wp_posts 
JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id
WHERE wp_posts.post_type = 'product' and wp_posts.post_date < '2018-09-01'
© www.soinside.com 2019 - 2024. All rights reserved.