Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

SQL Abfrage Suchen und ersetzen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
harakiri
PostRank 5
PostRank 5
Beiträge: 232
Registriert: 19.08.2005, 16:36

Beitrag von harakiri » 13.12.2006, 21:35

Hallo Leute,
habe die suche bemüht aber leider....

Ich habe eine datenbank SQL mit 90000 Werten.

Dort sind jetzt aber einige Duplikate vorhanden, welche ich löschen möchte.

Es sollten alle Datensätze gelöscht werden, welche den gleichen Titel haben, alles andere kann unterschiedlich sein.

delete * from Tabelle where ....?

Kann mir jemand helfen, stehe auf dem Schlauch!!

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 13.12.2006, 21:58

Das Problem kenn ich, ich habs so gelöst.

Erst eine Abfrage mit count + group by titel.
in der Schleife dann eine if Abfrage

Ist Anzahl größer 1 dann
delete from Tabelle where titel = aktueller Titel aus schleife und id !=aktueller id

das löscht alle Einträge mit doppeltem Titel.
Dabei bleibt der 1. Doppelte Eintrag immer erhalten.

harakiri
PostRank 5
PostRank 5
Beiträge: 232
Registriert: 19.08.2005, 16:36

Beitrag von harakiri » 13.12.2006, 22:08

danke, aber gib mir mal n beispiel, weiss jetzt wirklich nicht wie!

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 13.12.2006, 22:12

steht doch alles da ?
Das war doch ein ausführliches Beispiel

Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 13.12.2006, 22:26

Code: Alles auswählen


$query=mysql_query("SELECT COUNT(titel) as anzahl,titel FROM tabelle group by titel ORDER by titel");

while ($seite=mysql_fetch_array($query)):

if($seite['anzahl']> 1){

$suche=mysql_query("SELECT id FROM tabelle  WHERE titel='".$seite[titel]."' order by id ASC limit 1"); 
$daten=mysql_fetch_array($suche);
$kill_id = $daten['id'];

$query1=mysql_query("Delete From tabelle  WHERE titel ='".$seite[titel]."' and id !='".$kill_id."' ");
} 

endwhile;

So, das ist es, den Code verwende ich so :)
Must es halt anpassen

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag