Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zmień nazwy zduplikowanych wierszy w MySQL

Jeśli potrafisz używać PHP, polecam zrobić to przez PHP. Nie znalazłem sposobu, aby to zrobić z MySQL. Ten zaktualizuje WSZYSTKIE wiersze o liczbie> 1, łącznie z oryginałem.

UPDATE table
SET product_code = CONCAT(product_code, ' Copy')
GROUP BY product_code
HAVING COUNT(*) > 1

czego nie chcesz. Tak więc, jeśli używasz php, możesz to zrobić (zakładając, że masz małą liczbę wierszy w tabeli (3000 jest w porządku))

<?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)
    }
}

Zastrzeżenie: Nie testowany! Najpierw wykonaj kopię zapasową!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hierarchia kategorii (PHP/MySQL)

  2. Sprawdź x kolejnych dni - podane znaczniki czasu w bazie danych

  3. jak używać funkcji string left w hql

  4. Błąd połączenia C# MySQL SSL podczas próby użycia conn.Open()

  5. Wysyłanie wiadomości e-mail w formacie HTML powoduje, że wiadomość e-mail wyświetla źródło HTML (klasa e-mail Codeigniter)