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
之后结果如下
我有一个 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