sql >> Databasteknik >  >> RDS >> Mysql

Villkorad VID DUBLIKAT UPPDATERING AV NYCKEL (Uppdatera endast om ett visst villkor är sant)

du använder IF-satsen felaktigt

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);

så IF söker efter ett villkor och returnerar ett av två värden som anges som parametrar. Se MySQL:s flödeskontrolloperatörer .




  1. Hur beräknar man retentionsgrad i SQL?

  2. Slingresultat PDO PHP

  3. Räkna antalet rader i 30 dagars papperskorgar

  4. kan inte skapa tillägg utan superanvändarroll