Hvis du kan bruge PHP, vil jeg anbefale dig at gøre det via PHP. Jeg har ikke fundet en måde at gøre dette på med MySQL. Denne vil opdatere ALLE rækker med tæller> 1, inklusive originalen.
UPDATE table
SET product_code = CONCAT(product_code, ' Copy')
GROUP BY product_code
HAVING COUNT(*) > 1
som du ikke ønsker. Så hvis du bruger php, kan du gøre dette (forudsat at du har lavt antal rækker i din tabel (3000 er fint))
<?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)
}
}
Ansvarsfraskrivelse: Ikke testet! Lav en sikkerhedskopi først!