本帖最后由 it_wangxiangpan 于 2011-09-29 20:17:34 编辑

解决方案 »

  1.   

     DROP FUNCTION IF EXISTS test;
    CREATE FUNCTION test() RETURNS varchar(30) CHARSET utf8
    BEGIN    DECLARE rows_start int;
        DECLARE username varchar(30);
        DECLARE temp_sql varchar(300);
        
        SET rows_start=2;
        SELECT  user_name INTO username FROM conf_user_info ORDER BY id LIMIT rows_start,1;
        return username;
        
      END;
    经测试,limit后可以跟变量
      

  2.   

    在MYSQL 5.5.18下可以用,
    DELIMITER $$USE `aa`$$DROP FUNCTION IF EXISTS `test`$$CREATE DEFINER=`root`@`localhost` FUNCTION `TEST`() RETURNS VARCHAR(30) CHARSET utf8
    BEGIN
       DECLARE rows_start INT;
       DECLARE username VARCHAR(30);
       DECLARE temp_sql VARCHAR(300);
         
       SET rows_start=2;
       SELECT ORDERID INTO username FROM AA1 ORDER BY NUMBER LIMIT rows_start,1;
       RETURN username;
         
       END$$DELIMITER ;select test()
      

  3.   

    在MYSQL 5.5.18下可以用,
    DELIMITER $$USE `aa`$$DROP FUNCTION IF EXISTS `test`$$CREATE DEFINER=`root`@`localhost` FUNCTION `TEST`() RETURNS VARCHAR(30) CHARSET utf8
    BEGIN
       DECLARE rows_start INT;
       DECLARE username VARCHAR(30);
       DECLARE temp_sql VARCHAR(300);
         
       SET rows_start=2;
       SELECT ORDERID INTO username FROM AA1 ORDER BY NUMBER LIMIT rows_start,1;
       RETURN username;
         
       END$$DELIMITER ;select test()
      

  4.   

    Mysql每个版本之间的差距还真是大啊。看来以后最好是用比较新的版本了。以免面对某些功能只能望洋兴叹