14. februar 2002 - 12:26Der er
6 kommentarer og 1 løsning
Slet dobbeltrækker i db
Er der en der gider hjælpe med en kode, som gør følgende når den bliver kørt:
Access db: ma tabel: ils kolonner: ID, ADR
Jeg ønsker at slette de rækker, som her den samme værdi i ADR - dvs. hvis der er dobbeltværdi i ADR, så skal den ene slettes, så der kun er én tilbage med denne værdi.
Endvidere skal alle de rækker hvor @ ikke indgår i værdien i ADR slettes.
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
Dit spørgsmål hører ikke til under ASP, men under den database type du bruger.
Men prøv noget ala : --- DELETE ils AS i1 WHERE NOT INSTR(adr,"@") > 0 OR ((SELECT COUNT(*) FROM ils i2 WHERE i1.adr = a2.adr) > 1 AND id = (SELECT MAX(id) FROM ils i3 WHERE i1.adr = a3.adr)) ---
Hmm, vent. min sletter kun een extra.. ret det til:
--- DELETE ils AS i1 WHERE NOT INSTR(adr,"@") > 0 OR ((SELECT COUNT(*) FROM ils i2 WHERE i1.adr = a2.adr) > 1 AND id <> (SELECT MIN(id) FROM ils i3 WHERE i1.adr = a3.adr)) ---
Jeg kan ikke se hvad fejlen er, da du bruger nogle ting jeg ikke er så bekendt med.
1) den siger at @ er en ugyldig karakter 2) Hvis jeg sletter det første led (NOT INSTR(adr,"@") > 0 OR) så siger den at der er syntax error i statement.
sql = "DELETE ils AS i1 WHERE NOT INSTR(adr,"@") > 0 OR ((SELECT COUNT(*) FROM ils i2 WHERE i1.adr = a2.adr) > 1 AND id <> (SELECT MIN(id) FROM ils i3 WHERE i1.adr = a3.adr))"
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.