请查看我的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
。
如何解决此问题?
答案 0 :(得分:2)
将子查询包装在另一个SELECT
:
UPDATE `users_words`
SET `priority` = (SELECT x.* FROM (SELECT MAX(`priority`)+1 FROM `users_words`) x)
WHERE `userid` = 89 AND `wordid`="agree"