2013-03-21 86 views
0

同桌的另一行,我需要用下面的SQL幫助: -更新值在MySQL

UPDATE `mg_catalog_category_entity_varchar` AS t1 INNER JOIN `mg_catalog_category_entity` 
AS t2 ON t1.`entity_id`= t2.`entity_id` 
SET t1.`value` = CONCAT('US Sports Goods ', t1.`value`, ' | My Site Name') 
WHERE t2.`path` LIKE '1/2642%' AND t2.`level` > 1 AND t1.`attribute_id` = 40 

我的問題是,在CONCAT()聲明t1.value領域需要拉t1.value WHERE t1.attribute_id = 35和我正在努力弄清楚如何在CONCAT()聲明中正確指定。

+0

注意,您的問題聲明'WHERE t1.attribute_id = 35',但你的代碼規定'WHERE ... AND t1.attribute_id = 40' – Sepster 2013-03-21 03:25:13

+1

@MahmoudGamal Snap! ;-) – Sepster 2013-03-21 03:25:37

+0

對於'mg_catalog_category_entity_varchar'中的所有行,其中t2.'path' LIKE'1/2642%'AND t2.'level'> 1 AND t1.'attribute_id' = 40,我需要設置'value'字段等於來自同一'mg_catalog_category_entity_varchar'中的行的'value'字段中存儲的值WHERE t2.'path' LIKE'1/2642%'AND t2.'level'> 1 AND t1.'attribute_id' = 35。 – 2013-03-21 03:58:41

回答

0

試試這個:

UPDATE `mg_catalog_category_entity_varchar` AS t1 INNER JOIN `mg_catalog_category_entity` 
AS t2 ON t1.`entity_id`= t2.`entity_id` 
SET t1.`value` = CONCAT('US Sports Goods ', (SELECT t3.`value` FROM `mg_catalog_category_entity_varchar` AS t3 WHERE t3.`attribute_id` = 35 LIMIT 1), ' | My Site Name') 
WHERE t2.`path` LIKE '1/2642%' AND t2.`level` > 1 AND t1.`attribute_id` = 40 
+0

感謝您的回覆,但這會給出錯誤: - #1093 - 您無法在FROM子句中指定目標表't1'進行更新 – 2013-03-21 03:51:41

+0

這是什麼錯誤? – 2013-03-21 03:52:03

+0

Iswanto,我在上面發佈了錯誤消息,即#1093 - 您無法在FROM子句中指定目標表't1'進行更新 – 2013-03-21 03:59:55

0

試試這個:

UPDATE `mg_catalog_category_entity_varchar` AS t1 
INNER JOIN `mg_catalog_category_entity` AS t2 ON t1.`entity_id`= t2.`entity_id` 
INNER JOIN 
(
    SELECT * 
    FROM mg_catalog_category_entity_varchar 
    WHERE `attribute_id` = 35 
) AS t12 ON t2.entity_id = t12.entity_id 
SET t1.`value` = CONCAT('US Sports Goods ', t12.`value`, ' | My Site Name') 
WHERE t2.`path` LIKE '1/2642%' 
    AND t2.`level` > 1 
    AND t1.`attribute_id` = 40 
+0

這完美地運行了Mahmoud。非常感謝您的快速響應和解決方案。 – 2013-03-21 04:17:28

+0

@IanRyan - 隨時歡迎您:),嘗試[**接受答案**](http://meta.stackexchange.com/questions/16721/how-does-accept-rate-work)if你發現它有幫助。 – 2013-03-21 04:19:13