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

Warunkowe ON DUPLICATE KEY UPDATE (Aktualizuj tylko wtedy, gdy spełniony jest określony warunek)

niepoprawnie używasz instrukcji IF

INSERT INTO userlist (username, lastupdate, programruncount, ip)
VALUES (:username, NOW(), 1, :ip)
ON DUPLICATE KEY UPDATE
lastupdate = IF(lastupdate > NOW() - INTERVAL 20 MINUTE, NOW(), lastupdate),
programruncount = IF(lastupdate > NOW() - INTERVAL 20 MINUTE, programruncount + 1,   programruncount),
ip = IF(lastupdate > NOW() - INTERVAL 20 MINUTE, :ip, ip);

więc IF sprawdza warunek i zwraca jedną z dwóch wartości podanych jako jego parametry. Zobacz Operatory kontroli przepływu MySQL .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskiwanie dziwnych znaków podczas pobierania wartości w bazie mysql

  2. Czy można połączyć ciągi z wielu wierszy i tabel w jedną kolumnę wyników?

  3. Automatycznie usuwać dane skrzyżowania wraz z DELETE rekordu?

  4. Najlepsza opcja ORM od ASP.NET MVC do mySQL

  5. częściowe indeksowanie mysql, indeksowanie odwrotne