Nếu bạn có thể sử dụng PHP, tôi khuyên bạn nên sử dụng PHP. Tôi chưa tìm thấy cách nào để thực hiện việc này với MySQL. Cái này sẽ cập nhật TẤT CẢ các hàng có số lượng> 1, bao gồm cả hàng gốc.
UPDATE table
SET product_code = CONCAT(product_code, ' Copy')
GROUP BY product_code
HAVING COUNT(*) > 1
mà bạn không muốn. Vì vậy, nếu bạn sử dụng php, bạn có thể làm điều này (giả sử bạn có số lượng hàng thấp trong bảng của mình (3000 cũng được))
<?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)
}
}
Tuyên bố từ chối trách nhiệm: Không được thử nghiệm! Trước tiên, hãy sao lưu!