CREATE PROCEDURE `GetList`(In @aa int)
BEGIN
     select * from hexinyu order by id desc limit 0,@aa;
END为什么这么写不对,应该怎么写

解决方案 »

  1.   

    try:CREATE PROCEDURE `GetList`(In @aa int)
    BEGIN
         set @sql=concat('select * from hexinyu order by id desc limit 0,',@aa);
         prepare sqlstmt from @sql;
         execute sqlstmt;     deallocate prepare sqlstmt;
    END; call getlist(10);
      

  2.   

    好像还是不行哦,MySql怎么这么麻烦呀
      

  3.   

    delimiter ||
    CREATE PROCEDURE `GetList`(In aa int)
    BEGIN
         set @sql=concat('select * from hexinyu order by id desc limit 0,',aa);
         prepare sqlstmt from @sql;
         execute sqlstmt;
         deallocate prepare sqlstmt;
         set @sql = NULL;
    END||
      

  4.   

    这样写更好 set @sql = concat('select * from hexinyu order by id desc', ' limit ?, ?');
    set @row = 0;
    set @size = @aa;
    PREPARE myStmt FROM @sql;
    EXECUTE myStmt USING @row, @size;
    DEALLOCATE PREPARE myStmt;