我有一個eshop數據庫,我已經複製了一些產品以便將它們移動到不同的類別(批發/零售)。我需要更新,在它的名字有「[CLONE]」每種產品的CATEGORY_ID,這就是即時通訊做:使用2個連接的更新表
首先,我檢查有多少產品需要移動:
select p.product_id, pd.product, pc.category_id
from cscart_products p
join `cscart_product_descriptions` pd on p.product_id = pd.product_id
join `cscart_products_categories` pc on p.product_id = pc.product_id
where pd.product like '%CLONE%'
and pc.category_id = '17'; -- 17 is the current category_id
取出16行;
然後,我執行更新:
UPDATE cscart_products_categories pc
join `cscart_product_descriptions` pd on pc.product_id = pd.product_id
join `cscart_products` p on pc.product_id = p.product_id
SET pc.category_id = '30' -- the category to be moved to
WHERE pc.category_id = '17'
AND pd.product like '%[CLONE]%';
9行受到影響;如你所見,16箇中只有9個正在更新,顯然在我的更新語句中有什麼錯誤,但是什麼?樣本數據可以在這裏找到http://www.megaupload.com/?d=AM85UQFY
我已經更新了原來的職位,因爲我曾誤把值更新查詢順序錯誤。 – bikey77
這7個不反應可能已經是30的價值,因此不受影響? –