[英]Update value with value in another row of same table in MySQL
I need help with the following SQL:- 我需要以下SQL的帮助:
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
My problem is that the t1.value
field in the CONCAT()
statement needs to pull the t1.value
WHERE t1.attribute_id = 35
and I am struggling to figure out how to correctly specify this within the CONCAT()
statement. 我的问题是,
CONCAT()
语句中的t1.value
字段需要提取t1.value
t1.attribute_id = 35
而我正在努力弄清楚如何在CONCAT()
语句中正确指定此值。
Try this: 尝试这个:
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
Try this: 尝试这个:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.