【问题标题】:Remove woocommerce products only from certain category parent ID仅从特定类别父 ID 中删除 woocommerce 产品
【发布时间】:2014-11-20 19:15:34
【问题描述】:

我需要一些帮助来编写 Mysql 查询以仅从某个父类别中删除 Woocommerce 产品。该数据库包含超过 20.000 种产品。

我找到了以下查询:

DELETE relations.*, taxes.*, terms.*
  FROM wp_term_relationships AS relations
  INNER JOIN wp_term_taxonomy AS taxes
    ON relations.term_taxonomy_id=taxes.term_taxonomy_id
  INNER JOIN wp_terms AS terms
    ON taxes.term_id=terms.term_id
  WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type='product')

我需要将其与wp_term_taxonomy 父ID "7447" 链接,因此只有匹配此父ID 的产品和自定义字段将被删除。该结构有3 个级别的子类别,这在mysql 中是否可能?因为我找不到任何方法将子类别直接与父类别相关联。

请原谅我的提问,但我在 MYSQL 查询方面并不是很擅长。网上没有关于这个要求的。此外,我认为这对于未来面临此问题的开发人员来说是件好事。

非常感谢!

【问题讨论】:

    标签: mysql database woocommerce product


    【解决方案1】:

    首先使用SELECT 语句验证结果

    SELECT relations.*, taxes.*, terms.*
      FROM wp_term_relationships AS relations
      INNER JOIN wp_term_taxonomy AS taxes
        ON relations.term_taxonomy_id=taxes.term_taxonomy_id
      INNER JOIN wp_terms AS terms
        ON taxes.term_id=terms.term_id
      WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type='product')
      AND taxes.parent = 7447 <-- Add this extra condition
    

    【讨论】:

    • 您好,感谢您的遮阳篷和编辑 :) 我目前正在上传一个测试数据库,但我在阿鲁巴,那里的互联网真的很慢 :( .. 我认为这与parrent?该结构包含一个 3 级子猫?
    • @CoenPonsen,我不能不看表结构就说,但是是的,上面的查询只会得到 parent_id = 7447 匹配的行。
    • 我想我必须写一个php脚本,我目前正在寻找原生后端功能。
    • @CoenPonsen,我能给出的最佳建议;尝试运行已回答的查询并验证结果是否符合预期,然后将其更改为删除语句。
    • @CoenPonsen,不确定我是否理解您的最后评论。
    【解决方案2】:

    查询没有删除产品,只有类别信息。我最终使用:

    https://wordpress.org/plugins/wp-e-commerce-store-toolkit/

    Wich 完成了这项工作.... 大约需要 24 小时,但它会做它应该做的,删除产品并保持类别结构不变!

    感谢拉胡尔的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      • 2018-11-09
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 2021-11-07
      • 2014-04-06
      相关资源
      最近更新 更多