I want to use variable in MySQL limit, but it is not valid. Why? (If I change variable to number, it's ok.)
MySQL Error> #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@records-leaveErr; END IF; END IF; END' at line 9
My code:
DELIMITER //
    CREATE PROCEDURE `deleteOldErrRecords`(backTime int(11), leaveErr int(11))
    BEGIN
      SELECT @records:=COUNT(*) FROM `sys_proc_err`;
      IF @records > leaveErr THEN
        SELECT @actRecords:=COUNT(*) FROM `sys_proc_err` WHERE `time` > (NOW()-backTime); 
        IF @actRecords > leaveErr THEN
          DELETE FROM `sys_proc_err` WHERE `time` < (NOW()-backTime);
        ELSE
          DELETE FROM `sys_proc_err` ORDER BY `id` ASC LIMIT @records-leaveErr;
        END IF;
      END IF;
    END //
DELIMITER ;
 
    