Mysql抛出错误

时间:2010-11-15 09:21:14

标签: mysql sql mysql-error-1093

DELETE FROM mytable WHERE id IN (SELECT id FROM mytable where roll=1)

我有一张桌子mytable。我上面的查询引发了错误。

您无法在FROM子句

中为更新指定目标表'mytable'

6 个答案:

答案 0 :(得分:3)

来自MySQL documentation

  

目前,您无法从表中删除并从子查询中的同一个表中进行选择。

幸运的是,您不需要子查询。只是做:

DELETE FROM mytable WHERE roll=1

它更短更清晰。

答案 1 :(得分:1)

你为什么不这样做?

DELETE FROM mytable WHERE roll=1

答案 2 :(得分:0)

你为什么不写

DELETE FROM mytable WHERE roll=1

? 发生此错误是因为当上级查询修改同一个表时,MySql不喜欢从子查询中获取表格。

答案 3 :(得分:0)

为什么不简单:

DELETE FROM mytable WHERE roll=1

答案 4 :(得分:0)

为什么使用子查询?你可以这样写:

DELETE FROM mytable WHERE where roll=1;

答案 5 :(得分:0)

This thread解释了为什么你不能这样做。

在这个例子中,你可以使用:

DELETE FROM mytable WHERE roll=1