在自定义函数中
select  max(s.date_name) into tempbegintime   from  supervise_calendar s where s.date_name>tempbegintime and  s.cal_type='1'  order by s.date_name asc  limit   0,jg; 其中jg是一个变量,当jg换成数字,是正确的,当是变量时是错误的

解决方案 »

  1.   

    limit 中无法使用变量。你想实现什么功能? 可以考虑通过其它方式来实现,比如 prepare /execute 语句
      

  2.   

    LIMIT中不能用变量,用字符串累计生成SQL语句及动态执行的方法
      

  3.   

    DELIMITER //
    CREATE PROCEDURE PROC_NAME(变量一,变量二)
    BEGIN
    DECLARE ssql VARCHAR(100);
    SET ssql="SELECT * FROM TABLE_NAEM LIMIT ?,?";
    SET @fvar=变量一;
    SET @svar=变量二;
    SET @SQUERY=ssql;
    PREPARE STMT FROM @SQUERY;
    EXECUTE STMT USING @fvar,@svar;
    END;
    //
    DELIMITER ;
      

  4.   

    DELIMITER //
    CREATE PROCEDURE PROC_NAME(变量一,变量二)
    BEGIN
    DECLARE ssqlVARCHAR(100);
    SET ssql="SELECT*FROM TABLE_NAEM LIMIT ?,?";
    SET@fvar=变量一;
    SET@svar=变量二;
    SET@SQUERY=ssql;
    PREPARE STMTFROM@SQUERY;
    EXECUTE STMT USING@fvar,@svar;
    END;//
    DELIMITER ;