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

时间:2015-06-07 00:36:33

标签: mysql sql-update

我有一张看起来像这样的表:

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的下一个值实现它。

任何提示都会非常感激。

1 个答案:

答案 0 :(得分:1)

您可以使用同一个表格执行JOIN并执行UPDATE之类的

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

修改

发布的查询工作正常,并根据您的帖子提供准确的rsult。请参阅此演示小提琴http://sqlfiddle.com/#!9/4f020/1以获取证明。它会在UPDATE

之后产生

enter image description here