doppelte EInträge löschen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • doppelte EInträge löschen

    Hallo,

    ich habe eine Tabelle mit folgendem Aufbau:

    CREATE TABLE `spool` (
    `id` bigint(20) NOT NULL auto_increment,
    `rid` bigint(20) NOT NULL default '0',
    `empf` varchar(80) NOT NULL default '',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM;


    Nun würde ich gerne ein Script über die Tabelle "jagen", welches überprüft ob es doppelte Einträge in den Feldern rid und empf gibt, und alle bis auf einen Eintrag löscht. Da id fortlaufend ist ist mir hier eigentlich egal ob der höchste oder niedrigste Eintrag bleibt...

    Ich möchte aber nicht mit DISTINCT dem Umweg über eine temporäre Tabelle machen. Da ich in SQL leider nicht so fit bin hab ich keine andere Idee wie das sonst klappen könnte, und google hat mit bisher immer nur die DISTINCT-Variante geliefert....

    Danke!

  • #2
    Auslesen:
    Code:
    SELECT id, count( rid )
    FROM spool
    GROUP BY rid
    HAVING count( rid ) >1
    Diese IDs in ein Array packen und dann (mit implode)
    Code:
    DELETE
    FROM spool
    WHERE id NOT IN (id_1, id_2, id_3, ..., id_n)
    Für "empf" dann das gleiche.
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar

    Lädt...
    X