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

Dodanie do pola bazy danych zamiast nadpisywania (funkcja MySQL UPDATE)

Spróbuj użyć INSERT ... ON DUPLICATE KEY UPDATE

Jeśli określisz ON DUPLICATE KEY UPDATE i zostanie wstawiony wiersz, który spowodowałby zduplikowaną wartość w indeksie UNIQUE lub PRIMARY KEY, MySQL wykona UPDATE starego wiersza.

Na przykład, jeśli kolumna a jest zadeklarowana jako UNIQUE i zawiera wartość 1, następujące dwa stwierdzenia mają podobny skutek:

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

UPDATE table SET c=c+1 WHERE a=1;

(Efekty nie są identyczne dla tabeli, w której a jest kolumną z automatycznym zwiększaniem. W przypadku kolumny z automatycznym zwiększaniem, INSERT instrukcja zwiększa wartość automatycznego przyrostu, ale UPDATE nie.)

Klauzula ON DUPLICATE KEY UPDATE może zawierać przypisania wielu kolumn oddzielonych przecinkami.

Z ON DUPLICATE KEY UPDATE wartość wierszy, których dotyczy problem, wynosi 1, jeśli wiersz jest wstawiany jako nowy wiersz, i 2, jeśli istniejący wiersz jest aktualizowany.

Mam nadzieję, że to pomoże.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - jak pogrupować godziny, przesunięte o 30 minut

  2. MySQL:automatyczna inkrementacja tymczasowa kolumna w instrukcji select

  3. Zapytanie R RMySQL deformuje japońskie znaki

  4. Czy zapytanie PHP MYSQL może ignorować pustą zmienną w klauzuli WHERE?

  5. MySQL COUNT wyniki instrukcji UNION ALL