phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] Doppelte Datens?tze l?schen

[php] AW: [php] Doppelte Datens?tze l?schen

Enrico Weigelt php_(at)_phpcenter.de
Mon, 4 Mar 2002 22:27:35 +0100


On Mon, Mar 04, 2002 at 10:00:08PM +0100, Danny wrote:

<snip>
> 
> """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
> $fis = mysql_query("select id, firma, plz, strasse from mytabelle group by
> firma, plz, strasse HAVING count(*) > 1");
> 
> while($f=mysql_fetch_array($fis)){
> 	mysql_query("delete from mytabelle where id like '$f[id]'");
> }
> 
> """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

damit schiesst du dir hoechstens alle doppelten komplett ab!
ergo aus 2 mach 0, nicht 1 ...

ausserdem solltest du ueber alle felder groupen, nach deren gleichheit du 
rausfischen willst. wenn beispielsweise alle finden willst, die mit 
firma + plz + strasse uebereinstimmen, so musst du nach diesen feldern 
gruppieren. ist denn die ID bei dir auch manchmal doppelt ?

also der trick ist der: 

#1: nach den key-feldern (die du nicht mehr doppelt haben willst)
    gruppieren, alles rausholen, was count > 1 hat.
    
#2: alles raussuchen, was mit dem in #1 aufgelistetem uebereinstimmt,
    das erste dabei auslassen. (offset 1)

#3: die in #2 aufgelisteten rausfegen.

um dir wirklich weiterhelfen zu koennen, brauche ich dein tabellenlayout 
und muss wissen, nach welchen feldern zu gruppieren ist ...

> nach 30sec kommt timeout und es sind vielleicht 20 Datens?tze gel?scht :-((
set_time_limit ( -1 );

> Doppelte sind es ab 18.000 von 130.000 *schluchz*
> 
> Wie kann ich alle doppelten aufeinmal l?schen ????????????????????
auf einmal geht nicht. aber du kannst die sache auch direkt in 
der db machen, indem du ueber temporaere tabellen schaufelst.

~-n
--
 Enrico Weigelt    ==   meTUX IT services 
 software development, IT service, internet security solutions
 www:     http://www.metux.de/        phone:     +49 36207 519931
 email:   contact_(at)_metux.de            cellphone: +49 174 7066481


php::bar PHP Wiki   -   Listenarchive