mysql - MySQL - 更新从查询返回的表中的值?
问题描述
我触发了这个查询,我在其中加入了两个表并输出了两个表的一些列:
SELECT B.option_id, B.product_id, A.title, B.identifier
FROM `catalog_product_option_title` A JOIN
`catalog_product_option` B
ON A.option_id = B.option_id
WHERE A.title = "Breite"
结果:
现在我需要在结果xyz
中的列上输入示例值identifier
,无处不在。我会继续手动执行此操作。
如何使用update
MySQL 中的语句来解决这个问题,而无需手动手动更改它?
我试过这样:
UPDATE `catalog_product_option`
SET identifier = 'xyz'
WHERE option_id IN (
SELECT A.option_id
FROM `catalog_product_option_title` A
JOIN
`catalog_product_option` B
ON A.option_id = B.option_id
WHERE A.title = "Breite"
)
但是这个查询的模拟返回,这将改变 0 行。
更新
我在没有模拟的情况下调用了 sql,现在我得到了这个错误:
1093 - 表 'catalog_product_option' 被指定两次,既作为 'UPDATE' 的目标,又作为数据的单独源
解决方案
你可以试试这样吗?
UPDATE `catalog_product_option`
SET identifier = 'xyz'
WHERE option_id IN (
SELECT option_id FROM (SELECT A.option_id
FROM `catalog_product_option_title` A
JOIN
`catalog_product_option` B
ON A.option_id = B.option_id
WHERE A.title = "Breite") as x
)
推荐阅读
- django - 从 Firebase 访问 Django 管理员
- sql - 为什么这个索引会使 SELECT GROUP BY 查询变慢?
- c++ - Github Actions 路径未更新
- r - 运行服务器时不显示绘图输出
- swift - 在使用照片应用程序的共享扩展程序中获取实时图像 (PHLivePhoto)
- php - 替换配置文件中的图片
- c++ - lambda 捕获中的隐式类型
- javascript - 在 Vue 模板槽中使用父槽变量
- omnet++ - 安装时 OMNeT++ 和 INET 示例中的参数未分配错误
- wordpress - 如何在 Wordpress 中为我的主题创建新的自定义字段