最近在使用sql语句进行更新数据的时候报出以下错误:
错误1093的意思是:不能先select出同一表中的某些值,再update这个表(在同一语句中);此问题仅在Mysql中出现,Oracle数据库中则中无此问题。
举例说明:
上述代码from后面跟的表description和update后面的表description是同一张表,这在sql语法里面是不允许的。所以会爆出#1093,You can’t specify target table for update in FROM clause的错误,所以需要改为下面的代码:
第一种方法:涉及到as语法,用别名解决
第二种方法:用case when 条件1 then 结果1 when 条件2 then 结果2…….else 结果x end
以上两种代码都可以解决#1093,You can’t specify target table for update in FROM clause的错误,大家可以灵活运用。
正文完