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

时间:2018-09-04 18:40:52

标签: mysql wordpress woocommerce

我们的商店网站上有超过5万种产品,其中大约一半需要删除。我们使用wpallimport重新上传了产品,并设置了删除所有不在上传中但无法正常工作的产品的选项。相反,它只是在我们的csv中添加了所有这些。我们尝试使用BulkWP进行批量删除,但它使网站崩溃。我一直在手动删除它们,但一次只能执行60次,以确保不会崩溃。我将内存添加到1024,执行时间添加到600,将输入变量添加到3000,但是仍然不喜欢它。 我们想使用sql查询删除发布日期早于上次导入的所有产品,因为这可能是最快的方法,但想知道是否可行,因为X已有多少天了:

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

一旦删除产品(例如元后),是否还有其他需要删除的数据?如果是这样,什么查询可以删除特定于具有较早发布日期的元数据的元数据?充分欣赏

1 个答案:

答案 0 :(得分:0)

Woocommerce产品主要位于两个表中,即 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'