所以我正在寻找一个MySQL命令来对表中的行进行重复数据删除,如下所示:
ID origin firstname lastname job alternative_origin
1 table0 Andrew Miller Plumber
2 table1 Andrew Miller plumb.
3 table0 Joe Armstrong Taylor
4 table1 Phil Marshall Carpenter
我想将名和姓相同的所有行串联起来,因此表如下所示:
ID origin firstname lastname job alternative_origin
1 table0 Andrew Miller Plumber table1
3 table0 Joe Armstrong Taylor
4 table1 Phil Marshall Carpenter
任何帮助将不胜感激。
对于此示例数据,每个名称的重复项不能超过2个,请使用以下命令:
update tablename t
inner join tablename tt
on tt.firstname = t.firstname and tt.lastname = t.lastname and tt.id > t.id
set t.alternative_origin = tt.origin;
更新表,然后删除重复的行:
delete t
from tablename t inner join tablename tt
on tt.firstname = t.firstname and tt.lastname = t.lastname and tt.id < t.id;
参见演示。
结果:
> ID | origin | firstname | lastname | job | alternative_origin
> -: | :----- | :-------- | :-------- | :-------- | :-----------------
> 1 | table0 | Andrew | Miller | Plumber | table1
> 3 | table0 | Joe | Armstrong | Taylor | null
> 4 | table1 | Phil | Marshall | Carpenter | null
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句