Doppelte Einträge markieren

annalena49

Mitglied
Hi,

bei der Suche nach doppelten Einträgen in einer SQL möchte ich gerne den doppelten Eintrag markieren. Es klappt jedoch nur soweit, dass jeder gefundene Eintrag der mehrmals vorhanden ist markiert wird (Eintrag im Feld 'info'). Die erste gefundene Zeile betrachte ich als 'Original', alle weiteren Zeilen mit dieser Artikelnr als 'doppelt'. Also sollte die erste Zeile ohne Eintrag im Feld 'info' bleiben.


PHP:
$result = mysql_query("SELECT DISTINCT `artnr`, COUNT(`artnr`) AS `anzahl` FROM `$table` GROUP BY `artnr` HAVING COUNT(`artnr`) > 1");
      while($row = mysql_fetch_array($result))
      {
      echo $row['artnr'],"<br>";
      @mysql_query("UPDATE $table SET info = 'delete' WHERE artnr = '".$row['artnr']."'");
      }  
  $result = mysql_query($query,$conn);
?>
Wie müßte ich den Code ändern?

mfg
Annalena
 
HI,

weiß gerade nicht, ob ich's auf die Schnelle kapiert habe, aber hast du schonmal
versucht, im ersten SQL ein "limit 1, 10000" anzuklemmen?

[Edit]
Sorry, hab's verrafft.
Folgendes müsste funktionieren:
PHP:
@mysql_query("UPDATE $table SET info = 'delete' WHERE artnr = '".$row['artnr']."' LIMIT " . ( $row['anzahl']-1 ) );

Grüße,
MArc
 
Zuletzt bearbeitet:
Zurück