【发布时间】:2010-11-15 09:21:13
【问题描述】:
DELETE FROM mytable WHERE id IN (SELECT id FROM mytable where roll=1)
我有一张桌子mytable。我上面的查询抛出了一个错误。
您不能在 FROM 子句中指定目标表 'mytable' 进行更新
【问题讨论】:
标签: mysql sql mysql-error-1093
DELETE FROM mytable WHERE id IN (SELECT id FROM mytable where roll=1)
我有一张桌子mytable。我上面的查询抛出了一个错误。
您不能在 FROM 子句中指定目标表 'mytable' 进行更新
【问题讨论】:
标签: mysql sql mysql-error-1093
目前,您不能在子查询中从表中删除并从同一个表中进行选择。
幸运的是,您不需要子查询。做吧:
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;
【讨论】:
【讨论】: