我正在向表中添加新列position
。此列应在具有相同userId
的所有行中保存唯一值。如果按照id,创建或随机排序它们并不重要。例如:
id userId time subn position created
1 1 33 FG 1 2016-08-13
2 1 57 FG 2 2016-08-15
3 1 20 XM 3 2016-08-11
4 2 81 FG 1 2016-08-01
5 3 12 FG 1 2016-08-27
6 3 33 FG 2 2016-08-18
我该怎么做?我已经尝试创建一个副本表(这样MySQL就不会抱怨目标表的目标表是从中指定的更新),将初始值设置为0并运行它:
UPDATE userTimes_copy uic
SET position = (SELECT 1 + MAX(uic2.position)
FROM userTimes uic2
WHERE uic.userId = uic2.userId);
但它不起作用。前两行具有相同的userId,得到486(我有485行),其余所有1。