【问题标题】:UPDATE same table with LIKE用 LIKE 更新同一张表
【发布时间】:2012-10-17 10:41:28
【问题描述】:

我有一个包含 30,000 个产品的产品表。

SELECT product_id,sku PRODUCT T1

1  3518
12 3518[2]
11 88322[2]
10 915703[12]
 9 915703

product_id 的 1 和 12 是同一个产品,但有变化,所以我想更新 product_description.tag 两个值。

product_id = 1
product_description.tag = 3518, 3518[2]

product_id = 12
product_description.tag = 3518, 3518[2]

product_id = 11
product_description.tag = 88322[2]

product_id = 10
product_description.tag = 915703[12],915703

product_id = 9
product_description.tag = 915703[12],915703

认为这是有道理的,我只是无法在同一张桌子上执行 LIKE '%3518' 并更新另一张桌子。

你能帮忙吗?

谢谢

学习

【问题讨论】:

  • 我认为product_description 是不同的表?如果是这样,它如何链接到您的product 表?
  • 两张表。 product 和 product_description 都有对应的 product_id 字段。

标签: mysql join sql-like


【解决方案1】:

这是一个可怕的架构,花点时间通过创建一个新表(例如 Product_Masters)来部分修复它,并使用以下结果填充它:

SELECT product_id, 
    (
    SELECT MIN(product_id)
    FROM PRODUCT T2 
    WHERE T2.sku LIKE T1.sku + '%'
    ) AS master_project_id
FROM PRODUCT T1

然后将其用作设置 product_description 字段的列表。首先更新master_product_id对应记录的描述,然后更新所有子项目以匹配该值。

【讨论】:

  • 它是 OpenCart。使用 MIN( 很聪明,我喜欢你的想法。我会试一试。谢谢你的帮助。Stu
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-08
  • 2010-12-09
  • 2016-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多