MySQL:根据另一个字段添加序列列
我正在处理一些旧代码/数据库,需要在数据库中添加一个字段,该字段将记录与该(外部)ID相关的序列号。
表格数据示例(当前):
ID     ACCOUNT     some_other_stuff1      1           ...
2      1           ...
3      1           ...
4      2           ...
5      2           ...
6      1           ...
我需要添加一个sequenceid列,该列分别为每个帐户递增,以实现:
ID     ACCOUNT     SEQ     some_other_stuff1      1           1       ...
2      1           2       ...
3      1           3       ...
4      2           1       ...
5      2           2       ...
6      1           4       ...
请注意,该顺序与帐户有关。
有什么方法可以用SQL来实现,还是可以使用PHP脚本为我完成工作?
TIA,Kev
回答:
这应该可以,但是可能很慢:
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不允许您使用要更新的同一表中的子选择。
以上是 MySQL:根据另一个字段添加序列列 的全部内容, 来源链接: utcz.com/qa/415274.html








