baiyunjn 发表于 2018-10-7 06:11:05

mysql:error 1093 update子查询

  一、 需求
  要将base_info.name以wl_开头的数据的status字段更新为2
  二、执行
  Update base_info
  Set a.status=2

  Where (select>  执行时,提示1093错误,
  ERROR 1093 (HY000): You can't specify target table 't' for update in FROM clause 。
  mysql不支持修改一个表的时候子查询不能是同一个表。
  三、 优化
  通过临时表解决这个问题
  方法一:
  Update base_info
  Set a.status=2

  Where>  方法二:
  update base_info b

  join (select>  on tmp.id= b.id
  set b.expand1=2

页: [1]
查看完整版本: mysql:error 1093 update子查询