Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Doppelte Einträge entfernen!?

Hallo allerseits!

kann mir jemand sagen, wie ich doppelte einträge aus einer tabelle löschen kann. voraussetzung ist aber, dass gewisse bedingungen zutreffen müssen, konkret:

es wird gelöscht, wenn z.B. in der spalteX der eintrag schon vorhanden ist ODER auch der Eintrag in der spalteY doppelt vorhanden ist.
ich stelle mir so etwas vor:

DELETE <zeileN> FROM <tabelle> WHERE ((abc == 'doppelt') AND (def =='doppelt') AND ((ghi == 'doppelt') OR (jkl =='doppelt')))

bevor es jemand fragt, beantworte ich die frage selber. ja es muss möglich sein, dass 8 von 10 spalten doppel vorhanden sein können. und nein, ich kann nicht vorher kontrollieren, ob der eintrag schon doppelt vorhanden ist, weil der kunde die möglichkeit hat sein eintrag zu mutieren; so ist es ihm möglich eventuelle schreibfehler bei bestimmten angaben zu korrigieren.

ich danke bestens für eure mithilfe..

grüsse encase

Hier gehts zum Orginal Eintrag "Doppelte Einträge entfernen!?" im Forum

Antworten

Hi

Gehts ein bisschen genauer? Beispielrows. Und welche MySQL Version hast du?


2.

mysql :: 4.1.12

situation: ich baue eine datenbank für inserate. der kunde gibt seine persönliche daten und informationen über sein angebot. nach der eingabe werden seine daten nochmals zur verifikation eingeblendet. hier kann er nochmals zurückgehen und seine daten nochmals verändern, wenn er zB. einen tippfehler gemacht hat.
das problem dabei ist aber, dass die daten zu diesem zeitpunkt schon in die datenbank geschrieben worden sind, weil er ja nicht zwingend etwas zu korrigieren hat. wenn er aber etwas korrigiert, existieren in der datenbank zwei oder evtl. mehr einträge, die sich nur zb. um eine spalte unterscheiden.
was passiert, wenn der gleiche kunde mehrere angebote platzieren will??? dann habe ich wiederum zwei oder mehr einträge die zwar je nachdem zu 90% identisch sind, aber sich um komplett andere angebote handeln!!

jetzt habe ich eben die folgende idee: ich lösche alle einträge, die entweder die bedingung X oder die bedingung Y erfüllen. die bedingung X wäre zb. das geschlecht (gibt garantiert niemand falsch ein ;) ) UND der beginn des angebots etc...

nur, wie macht man das??


3.

ich hab hier mal ein beispiel-gerüst:

Code:                   In Zwischenablage kopieren (nur IE)
1">

f_cadre_ads :: betroffene tabelle

f_corr_salutation :: geschlecht

$f_corr_salutation :: variable, die vom formular übergeben wird

spec_date :: löschdatum

$f_ad_duration :: datum des eintragens

-----
btw :: ist es überhaupt möglich werte in einer mysql-tabelle mit variablen im php-script zu vergleichen??


4.

Hi

Mit

Code:                   In Zwischenablage kopieren (nur IE)
2">

löschst du ALLE Sätze mit dem Geschlecht aus der Variablen $f_corr_salutation. Willst du das wirklich?

Ich denke bei der DELETE Query sollte irgendwie die Kundennummer in der WHERE Bedingung stehen (und natürlich noch weitere Kriterien)


5.

hab hier ein neues quick&dirty gebastelt, zusätzlich noch eine neues pflichtfeld (f_job_ref :: referenz-nr. des kunden -> die gibt er sicher nicht falsch ein) definiert. anhand dieser werde ich die kunden erkennen.

funktioniert soweit gut.

hier der code:
Code:                   In Zwischenablage kopieren (nur IE)
3">

und weisst du was das obergeilste© ist; gelöscht werden immer nur die älteren einträge, ohne das ich daran gedacht habe. vieleicht geb ich zur sicherheit noch eine weitere bedingung mit; man weiss ja nie, wer da draussen alles einen pc bedienen kann! ;)

danke für deine bemühungen....


6.

kann man hier kein ' [solved] ' in die 'subject' -linie rein-editieren?? wär noch praktisch denk ich...


7.

Also, Ich habe nicht alles verstanden.

Nichtsdesdotrotz meine Empfehlung:
jede Tabelle sollte einen Unique - key haben.
Bei der User-Table wäre das z.B. die Kundennummer.
Und für die Inserate würde ich eine ID mit auto-increment vergeben.

So hat man alle Datenzätze eindeutig am Haken.


Hier gehts zum Orginal Eintrag "Doppelte Einträge entfernen!?" im Forum
 
phpforum.de | Impressum | Handy Bundles