sql >> Base de Datos >  >> RDS >> Mysql

Condicional EN ACTUALIZACIÓN DE CLAVE DUPLICADA (Actualizar solo si cierta condición es verdadera)

estás usando la declaración IF incorrectamente

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

entonces IF verifica una condición y devuelve uno de los dos valores proporcionados como parámetros. Consulte Operadores de control de flujo de MySQL .