Mysql
 sql >> Database >  >> RDS >> Mysql

Condizionale SU AGGIORNAMENTO CHIAVE DUPLICATA (Aggiorna solo se determinate condizioni sono vere)

stai usando l'istruzione IF in modo errato

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

quindi IF verifica una condizione e restituisce uno dei due valori forniti come parametri. Vedi Operatori di controllo del flusso di MySQL .