mysql - 使用 where 子句中的 select 查询中的字段之一更新查询

标签 mysql mysql-error-1064

我知道这是一个令人困惑的标题,但该示例将展示我想要实现的目标:

UPDATE tr.tbl_to_be_updated SET cat=-1 WHERE cat NOT IN (SELECT c.id
  FROM tr.cat as c WHERE c.sh=tbl_to_be_updated.sh))

我怎样才能实现这个目标?通过此查询,我收到一条不允许的错误。

最佳答案

UPDATE tbl_to_be_updated 
LEFT JOIN cat ON cat.sh = tbl_to_be_updated.sh
SET tbl_to_be_updated.cat = -1 
WHERE cat.sh IS NULL

关于mysql - 使用 where 子句中的 select 查询中的字段之一更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23009643/

相关文章:

php - Laravel 查询生成器选择具有不同条件的同一表同一列

java - 使用 JDBC 在 Mysql 中更新查询的问题

php - 如何在php mysql中实现反向ajax来获取数据库更新

php - 插入表或更新 php 中的重复键错误

MySQL - 从临时表插入

mysql - 选择多个表的权限

带有预选光标数据的 MySQL 过程

php - 从 Blob 插入和检索图像

sql - 这个内部查询(MySQL)有什么问题

c# - Mysql语法错误