MySQL:使用下一条用户记录的值更新用户记录

MySQL: Update user record with value from next user record

我有一个 table 看起来像这样:

ID    | uid   | vcode   | vcode_next
1       1       abc
2       2       def
3       2       ghi
4       1       jkl
5       1       mno

并且我需要使用给定用户 ID 的下一个 vcode 更新 vcode_next。所以结果应该是:

ID    | uid   | vcode   | vcode_next
1       1       abc       jkl
2       2       def       ghi
3       2       ghi       
4       1       jkl       mno
5       1       mno

我见过一些类似的问题,它们对选择更新值有不同的要求,但我不太清楚如何为给定用户 ID 的下一个值实现这一点。

如有任何提示,我们将不胜感激。

您可以使用相同的 table 执行 JOIN 并执行 UPDATE

UPDATE table1 a 
    JOIN table1 b ON a.uid = b.uid AND a.ID < b.ID
SET a.vcode_next = b.vcode;

编辑:

posted 查询工作正常,并根据您的 post 给出准确的结果。请参阅此演示 fiddle http://sqlfiddle.com/#!9/4f020/1 以获取证明。在 UPDATE

之后结果如下