Avatar billede Mik2000 Professor
29. juli 2008 - 18:11 Der er 8 kommentarer og
1 løsning

Fjern ens poster i tabel

Hej

Hvordan kan man fjerne poster med ens brugernavn i en tabel?

Jeg har en tabel med id (unique), brugernavn og password
Brugernavn må ikke blive unique/primary da det script der indsætter fra csv fil så fejler.

Jeg håber du kan hjælpe, og har du spørgsmål så skriv enelig
Avatar billede arne_v Ekspert
29. juli 2008 - 18:25 #1
Hvis der er duplikat - efter hvilket kriterie skal der saa slettes ?

Hvis du vil beholde hoejeste id saa proev:

DELETE FROM tabel
WHERE id NOT IN (SELECT MAX(id) FROM tabel GROUP BY brugernavn)

Husk og test paa en kopi af data foerst naar det drejer sig om at slette.
Avatar billede Mik2000 Professor
30. juli 2008 - 00:43 #2
Tak for svaret. Jeg får følgende fejl

DELETE FROM personer WHERE id NOT IN (
SELECT MAX( id )
FROM personer
GROUP BY brugernavn
)

MySQL returnerede: 
#1093 - You can't specify target table 'login_partner' for update in FROM clause
Avatar billede arne_v Ekspert
30. juli 2008 - 01:26 #3
Hm. Den er vanskelig !

Men da det vel kun er en engangs foreteelse, så kan du vel bruge en midlertidig tabel:

CREATE TABLE tempids (id INTEGER NOT NULL PRIMARY KEY);
INSERT INTO tempids SELECT MAX( id ) FROM personer GROUP BY brugernavn;
DELETE FROM personer WHERE id NOT IN (SELECT id FROM tempids);
DROP TABLE tempids;
Avatar billede arne_v Ekspert
30. juli 2008 - 01:26 #4
MySQL har også en feature til midlertidige tabeller, men ...
Avatar billede Mik2000 Professor
01. august 2008 - 01:16 #5
Ser ud til at fungere :) Så læg et svar og så er der point :)
Avatar billede arne_v Ekspert
01. august 2008 - 01:29 #6
OK
Avatar billede Mik2000 Professor
04. august 2008 - 02:33 #7
Tak for hjælpen :)
Avatar billede Mik2000 Professor
05. august 2008 - 14:25 #8
Lige et ekstra spørgsmål

Hvad nu hvis jeg vil beholde det laveste id i stedet for det højeste?
Avatar billede pidgeot Nybegynder
05. august 2008 - 14:43 #9
Så skriver du MIN i stedet for MAX.

*går igen*
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester