翻译为:不能先select出同一表中的某些值,再update这个表(在同一语句中)
多半是update在where条件后又Select了一次,所以报错
SQL:
UPDATE a SET a.name = 1 WHERE a.id in (SELECT a.id FROM a WHERE ISNULL(a.id))
后面子查询再查询一次即可
UPDATE a SET a.name = 1 WHERE a.id in (SELECT * from (SELECT a FROM a WHERE ISNULL(a.see)) as b)
文章讲述了在SQL语句中,由于在一个UPDATE语句中同时进行了SELECT操作,导致了错误。解决方案是在UPDATE之前,将子查询提取出来,避免在同一语句中对同一表进行两次查询。
1万+

被折叠的 条评论
为什么被折叠?



