MySQL不能update where select 2021-04-28 17:15 MySQL不能update使用select出的数据作为条件,就像下面这样: ```sql update `tableName` set `column1` = "xxx" where `column2` in (select column2 from (select column2 from tableName where column1 = "xxx") as `temp`) ``` 提示错误: You can't specify target table 'ppdai_third_supplier_log' for update in FROM 是因为MySQL开启了safe-update模式,可以使用下面sql查询: ```sql show variables like 'SQL_SAFE_UPDATES'; ``` 若结果为OFF,则关闭;若为ON,则为开启。 当safe-update模式开启时,无法update select,需要将safe-update模式关闭才可以。 ```sql # 关闭safe-update模式 SET sql_safe_updates=0; # 开启safe-update模式 SET sql_safe_updates=1; ``` 关闭后上述sql正常执行。 --END--
发表评论