MySQL中的错误:1093的解决方案,您不能指定from子句中更新的目标表
最近,在处理某些数据库中的数据时,编写了以下SQL语句:
更新f_student
集school_id = 0
哪里
(ID >
选择
身份证件
从
f_student
哪里
school_id = M
限制1
)
和ID <
(
选择
身份证件
从
f_student
哪里
school_id = M
限制1
)+ N
)
上面的SQL是在一段时间内修改数据,但将其放入测试环境中并报告以下错误:
{会} 1093你不能指定目标表的更新f_student在FROM子句
很明显,我们无法执行更新操作的表的查询操作,也就是说,我们在那里的条件子查询和子查询也更新操作的表。MySQL不支持这种查询修改方式。
解决方法
上网查一下,对于这个问题可以通过路径来实现,下面的sql语句。
更新f_student集school_id = 0
标识>
(
从中选择id(
选择ID从f_student哪里school_id = M限制1
作为临时
)
和身份< <
(
(
从中选择id(
选择ID从f_student哪里school_id = M限制1
作为temp_1
)+ N
)
好的,没问题。以上SQL相比以前的SQL当以ID,并得到ID查询而不是让它直接。
总结
以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一定的帮助。如果有任何疑问,你可以留言。