gpt4 book ai didi

mysql - 无法使该查询工作。 Mysql更新选择另一个查询然后更新

转载 作者:行者123 更新时间:2023-11-30 00:26:18 26 4
gpt4 key购买 nike

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 - You can't specify target table 'catalog_product_option_type_value' for update in FROM clause

正在尝试解决这个问题。已经研究、尝试、再尝试。

最佳答案

在 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
)

或者在更新查询中使用 join 更好

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%'

关于mysql - 无法使该查询工作。 Mysql更新选择另一个查询然后更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22849396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com