17. september 2003 - 11:08Der er
11 kommentarer og 1 løsning
Slette dobbeltregistreringer
Kan man lave en SQL sætning, som sletter alle dobbeltregistreringer i en tabel?? fx. 123 | 10 | 1010 | 12:20 | 13:00 | true 124 | 10 | 1010 | 12:20 | 13:00 | true
Det første element er blot en auto-increment, som jeg bruger som nøgle.
Hvordan kan man lettest kontrollere og slette sådanne dobbeltregistreringer??
Tak for det hurtige svar. Det virker næsten so mdet skal... Bortset fra at den sletter begge registreringer. Det skal helst være sådan at den lader en stå, og sletter alle andre.
delete from tabel1 where Exists (Select '*' from tabel1 as CHK where tabel1.Counter < Chk.Counter and tabel1.felt1 = chk.felt1 and tabel1.felt2 = chk.felt2 and tabel1.felt3 = chk.felt3 and tabel1.felt4 = chk.felt4 and tabel1.felt5 = chk.felt5)
rofl. Go for it. ;) The problem with the other one, is that the table is not updated in the delete, first after, so count(*) wont work, but this one will delete every thing below the last reocrd which have the highest counter.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.