DELETE FROM mytable WHERE id IN (SELECT id FROM mytable where roll=1)
我有一个表mytable
。我上面的查询是抛出一个错误。Mysql发生错误
您不能指定目标表“MYTABLE”的更新在FROM子句
DELETE FROM mytable WHERE id IN (SELECT id FROM mytable where roll=1)
我有一个表mytable
。我上面的查询是抛出一个错误。Mysql发生错误
您不能指定目标表“MYTABLE”的更新在FROM子句
目前,您无法从表中删除,并在子查询中从同一个表中选择。
幸运的是,您不需要子查询。只要这样做:
DELETE FROM mytable WHERE roll=1
它更短,更清晰启动。
为什么你不这样做?
DELETE FROM mytable WHERE roll=1
你为什么不只是写
DELETE FROM mytable WHERE roll=1
? 发生该错误的原因是,当上级查询修改相同的表时,MySql不喜欢它在子查询中获取表格。
为什么不干脆:
DELETE FROM mytable WHERE roll=1
你为什么要使用子查询?你可以这样写:
DELETE FROM mytable WHERE where roll=1;