UPDATE `tombaldi_2bj3de9ad`.`catalog_product_option_type_value`
SET `catalog_product_option_type_value`.`option_id` = '72'
WHERE `catalog_product_option_type_value`.`option_id` IN
(SELECT `catalog_product_option_type_value`.`option_id`
FROM `tombaldi_2bj3de9ad`.`catalog_product_option_type_title`
INNER JOIN `tombaldi_2bj3de9ad`.`catalog_product_option_type_value` ON catalog_product_option_type_title.option_type_id = catalog_product_option_type_value.option_type_id
WHERE (
CONVERT( `title` USING utf8 ) LIKE '%initials%'
))
我收到错误
#1093 - 您无法在FROM子句中为更新指定目标表'catalog_product_option_type_value'
试图解决这个问题。已经研究过,再次尝试过。
答案 0 :(得分:0)
在mysql中,您无法在更新期间在查询中使用相同的表,这可以通过为子查询提供新别名来完成
UPDATE tombaldi_2bj3de9ad.catalog_product_option_type_value
SET catalog_product_option_type_value.option_id = '72'
WHERE catalog_product_option_type_value.option_id
IN (SELECT t.option_id
FROM (
SELECT catalog_product_option_type_value.option_id
FROM tombaldi_2bj3de9ad.catalog_product_option_type_title
INNER JOIN tombaldi_2bj3de9ad.catalog_product_option_type_value
ON catalog_product_option_type_title.option_type_id = catalog_product_option_type_value.option_type_id
WHERE ( CONVERT( title USING utf8 ) LIKE '%initials%' )
) t
)
甚至更好地在更新查询中使用加入
UPDATE
tombaldi_2bj3de9ad.catalog_product_option_type_value cv
JOIN tombaldi_2bj3de9ad.catalog_product_option_type_title ct
ON(ct.option_type_id = cv.option_type_id )
SET
cv.option_id = '72'
WHERE CONVERT(ct.title USING utf8) LIKE '%initials%'