我有一个包含字段的表
表A)
当我运行sql命令时
SELECT id,
user,
`low_id`
FROM ( SELECT @r:= IF(@u = user, @r + 1,1) AS `low_id`,
id,
user,
@u:= user
FROM usertest,
(SELECT @i:= 1) AS r,
(SELECT @u:= 0) AS u
ORDER BY user
) AS usertest
表B)我以以下方式被选中
Id用户低_Id--------------------1 100 12 200 13 100零4 300 15 300零6 100零-------------------
我希望上面的代码为每个用户记录永久更新序列1-n中的low_id然后计数器为下一个用户重置为1,并为每个用户将低id值增加1记录。
我想更新表A)类似于表c)
表C)
Id用户低_Id--------------------1 100 12 200 13 100 24 300 15 300 26 100 3-------------------
simple。。按用户对数据进行排序并计算次数。。
UPDATE users u,
( SELECT id, if(@a = user, @b:=@b+1, @b:=1) as new_low, @a:= user
FROM users
CROSS JOIN(SELECT @a:=0, @b:=1)t
ORDER BY user, id
) t1
SET u.low_id = t1.new_low
WHERE u.id = t1.id;
演示