当我在MySQL中键入此查询时:
DELETE FROM myTable WHERE ID = ( SELECT Min( ID ) FROM myTable )
我收到以下错误消息:
#1093 - You can't specify target table 'myTable' for update in FROM clause
问题是什么 ?
什么是正确的等价物?
最佳答案
基本上在MySQL中,您无法对在SELECT部分中使用的表进行更新.有关详细信息,您可以检查以下文档中记录的此行为:http://dev.mysql.com/doc/refman/5.6/en/update.html
从理论上讲,每个DELETE都是一个UPDATE,这就是你得到这个错误的原因.
你可以简单地做以下事情:
DELETE FROM myTable
ORDER BY my_id
LIMIT 1;