mysql - 更新 mysql 行时(您无法在 FROM 子句中指定目标表 'x' 进行更新)

标签 mysql sql

我正在尝试更新 MySQL 行。

我的查询是

update x set available_material_id = null where id not in (select id from x where additional_info = 1);

我收到此错误消息:您无法在 FROM 子句中指定要更新的目标表“x”

有人可以帮我解决这个问题吗?

我使用的是 MySQL 版本 5.6.38。

我看到了这个You can't specify target table for update in FROM clause答案,但我无法弄清楚。

最佳答案

使用左连接:

update x left join
       x xx
       on x.id = xx.id and xx.additional_info = 1
    set available_material_id = null
    where xx.id is null;

关于mysql - 更新 mysql 行时(您无法在 FROM 子句中指定目标表 'x' 进行更新),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51087937/

相关文章:

sql - 我需要删除一个我不知道名称的独特约束

mysql c api mysql_fetch_row() 复制字段

php - 使用 PHP 插入 MySQL 数据库时排除空记录

mysql - Node.js只响应一个html请求

mysql - 我如何使用mysql获取最近10天的记录

mysql - 如何使用mysql select查询获取下一行中的后续列总数

sql - 查找订单中文章的累计出现次数

mysql - 使用Mysql将表导入数据库时​​出现SQL语法错误

javascript - MySQL查询后无法运行js命令

sql - 如何根据 Athena (Presto) 中的列值将一行分成多行?