【问题标题】:sql query to bulk remove woocommerce products by publish datesql查询按发布日期批量删除woocommerce产品
【发布时间】:2019-02-09 20:07:37
【问题描述】:

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

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

在删除产品后,是否还有其他数据需要删除,例如 post-meta?如果是这样,什么查询可以删除特定于发布日期较旧的元数据?充分欣赏它

【问题讨论】:

    标签: mysql wordpress woocommerce


    【解决方案1】:

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

    【讨论】:

    • 我很高兴它有帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-04-07
    • 2020-02-24
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    • 2015-09-05
    相关资源
    最近更新 更多