查找多行中的重复标识符作为MySQL的关键

时间:2017-05-24 11:19:18

标签: mysql wordpress

我正在尝试使用MySQL找到重复产品的一个巨大问题,我们的数据库只是手动完成。我需要找到重复的产品,这是我现在能给你的最好的描述。

这是关于WordPress和WooCommerce。我需要找到与meta_key的meta_value相同的重复产品: _sku _price

同一个表格 post_id 引用 wp_posts 中的产品,这是产品需要删除的地方,现在我们可以将meta保留在数据库中,现在不应该有任何伤害。

起初我尝试使用post_title查找重复项,但问题是某些标题不同,我们有一些产品具有相同的SKU但标题不同,这就是我们匹配_sku和_price meta_key的原因。

Relevant Tables | columns:
wp_postmeta | post_id, meta_key, meta_value
wp_posts | ID, post_title

Example data:
wp_postmeta | 15, _price, 15.00
wp_postmeta | 15, _sku, "DUP"
wp_postmeta | 16, _price, 15.00
wp_postmeta | 16, _sku, "DUP"
wp_postmeta | 17, _price, 42.00
wp_postmeta | 17, _sku, "VALID"
wp_posts | 15, "This is a duplicate product." (delete either this one or one below)
wp_posts | 16, "This is another product, same values."
wp_posts | 17, "This is a valid single, product."

1 个答案:

答案 0 :(得分:0)

您为所有产品推销循环,如果发现重复,则触发以下查询。

将product_id替换为循环的重复产品ID。

删除p FROM wp_posts p WHERE p.post_type ='product'AND ID = product_id;

DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID = product_id;

DELETE tr FROM wp_term_relationships tr INNER JOIN wp_term_taxonomy tt ON(tr.term_taxonomy_id = tt.term_taxonomy_id)WHERE tt.taxonomy!='link_category'AND tr.object_id IN = product_id;