bạn đang sử dụng câu lệnh IF không chính xác
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);
vì vậy IF kiểm tra một điều kiện và trả về một trong hai giá trị được cung cấp làm tham số của nó. Xem Toán tử Điều khiển Luồng của MySQL .