【问题标题】:MySQL Error: You can't specify target table 'users_words' for update in FROM clause [duplicate]MySQL错误:您不能在FROM子句中指定目标表'users_words'进行更新[重复]
【发布时间】:2014-07-09 08:27:38
【问题描述】:

请看一下我的 MySQL 子句。

UPDATE `users_words` SET `priority` = (SELECT MAX(`priority`)+1 FROM `users_words`) where `userid` = 89 AND `wordid`="agree"

在这里,我将通过将现有的最大 priority 字段值加 1 来更新 priority 字段。但我收到错误You can't specify target table 'users_words' for update in FROM clause

我该如何解决这个问题?

【问题讨论】:

    标签: mysql sql select sql-update


    【解决方案1】:

    只需将您的子查询包装在另一个 SELECT 中即可:

    UPDATE `users_words` 
    SET `priority` = (SELECT x.* FROM (SELECT MAX(`priority`)+1 FROM `users_words`) x) 
    WHERE `userid` = 89 AND `wordid`="agree"
    

    【讨论】:

    • 绝招!太棒了!
    猜你喜欢
    • 2012-03-06
    • 1970-01-01
    • 2018-06-04
    • 2020-06-01
    • 2011-08-25
    • 2013-04-09
    • 2015-09-15
    • 2014-01-29
    • 2017-01-12
    相关资源
    最近更新 更多