这应该可以,但是可能很慢:
CREATE temporary table seq ( id int, seq int);
INSERT INTO seq ( id, seq )
SELECT id,
(SELECT count(*) + 1 FROM test c
WHERE c.id < test.id AND c.account = test.account) as seq
FROM test;
UPDATE test INNER join seq ON test.id = seq.id SET test.seq = seq.seq;
我称该表为“测试”;显然,需要正确设置。您必须使用临时表,因为MysqL不允许您使用要更新的同一表中的子选择。