2012-10-17 74 views
0

我有一個產品表,裏面有30,000個產品。更新與LIKE相同的表

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'並更新另一張。

你能幫忙嗎?

感謝

斯圖

+0

我把它'product_description'是不同的表?如果是這樣,它如何鏈接到你的「產品」表? – Bridge

+0

兩張桌子。 product和product_description都帶有相應的product_id字段。 – Stuart

回答

0

這是一個可怕的模式,利用這個機會來部分解決它通過創建一個新表說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對應的記錄的描述,然後更新所有子項目以匹配該值。

+0

這是OpenCart。這很聰明,使用MIN(我喜歡你的想法,我會給你一個機會,謝謝你的幫助,Stu – Stuart