Mailinglisten-Archive |
> ich habe hier ein kleines Problem mit doppelten Einträgen. > Eine Suche im Archiv hat mir das hier gebracht: > select min(primkey) from table group by a,b,c having count (a)>1 > Klingt soweit ganz gut. Aber die Tabelle hat 7.500.000 > Einträge und keinen Index :-| Ich mache das ganze mit einem normalen Index Dann lasse ich mit INSERT INTO radacct2( AcctSessionId , AcctUniqueId , UserName , Realm , NASIPAddress , NASPortId , NASPortType , AcctStartTime , AcctStopTime , AcctSessionTime , AcctAuthentic , ConnectInfo_start , ConnectInfo_stop , AcctInputOctets , AcctOutputOctets , CalledStationId , CallingStationId , AcctTerminateCause , ServiceType , FramedProtocol , FramedIPAddress , AcctStartDelay , AcctStopDelay , zähler ) SELECT AcctSessionId , AcctUniqueId , UserName , Realm , NASIPAddress , NASPortId , NASPortType , AcctStartTime , AcctStopTime , AcctSessionTime , AcctAuthentic , ConnectInfo_start , ConnectInfo_stop , AcctInputOctets , AcctOutputOctets , CalledStationId , CallingStationId , AcctTerminateCause , ServiceType , FramedProtocol , FramedIPAddress , AcctStartDelay , AcctStopDelay , count( * ) FROM radacct GROUP BY AcctUniqueId , UserName HAVING Count( * ) >1; Alle Daten in eine 2. Datenbank ausspielen Dann wird in der Original Daten mit DELETE radacct FROM radacct,radacct2 WHERE radacct2.AcctUniqueID = radacct.AcctUniqueID; Alle doppelten Eintrage gelöscht und mit INSERT IGNORE INTO radacct........ Nachdem der Index oder das Feld auf Unique gesetzt wurde alle Daten wieder zurück gespielt sofern das wirklich identische Datensätze sind sollte das gehen -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive