Om du kan använda PHP skulle jag rekommendera dig att göra det via PHP. Jag har inte hittat något sätt att göra detta med MySQL. Den här kommer att uppdatera ALLA rader med antal> 1, inklusive originalet.
UPDATE table
SET product_code = CONCAT(product_code, ' Copy')
GROUP BY product_code
HAVING COUNT(*) > 1
som du inte vill ha. Så om du använder php kan du göra detta (förutsatt att du har lågt antal rader i tabellen (3000 är bra))
<?php
$result = mysql_query("SELECT * FROM table");
$rowsCnt = array();
while($row = mysql_fetch_assoc($result)){
$rows[] = $row;
$rowsCnt[ $row['product_code'] ]++;
}
foreach($rows as $index => $row) {
if ($rowsCnt[ $row['product_code'] ] > 1) {
mysql_query("UPDATE table SET product_code = '".mysql_real_escape_string($row['product_code'])." Copy' LIMIT ".($rowsCnt[ $row['product_code'] ] - 1)
}
}
Ansvarsfriskrivning: Ej testad! Gör en säkerhetskopia först!