首页 文章

#1093 - 您可以't specify target table ' tbl'进行FROM子句中的更新[重复]

提问于
浏览
1

这个问题在这里已有答案:

无法执行以下查询

Update tbl SET alias_seq= (Select seq from tbl where analysed_object =
'data' order by seq LIMIT 1)

低于错误

#1093 - 您无法在FROM子句中为更新指定目标表'tbl'

1 回答

  • 3

    您无法更新子查询引用的同一数据源中的行 .

    将您的查询修改为此

    UPDATE tbl SET alias_seq= (SELECT * FROM (Select seq from tbl where analysed_object = 'data' order by seq LIMIT 1) as X)
    

    这里嵌套的子查询生成一个临时表 . 因此,它不算作您尝试更新数据的同一个表 . 换句话说,在 MySQL 中,您无法修改在 SELECT 部分中使用的同一个表 .

    您可以在这里参考更多信息UPDATE Syntax .

相关问题