create proc test @curPage int,@pageSize int output 
as
begin
declare @pageCount int;
select @pageCount=count(*) from Products
set @pageSize=CEILING(@pageCount/10.0);
declare @queryStr  varchar(200);
if(@curPage>=1)
 begin
   if(@curPage<=@pageCount)
      begin
      set @queryStr='select top 10 ProductID,ProductName ,UnitPrice from Products where ProductID not in (
                  select top '+CAST(((@curPage-1)*10) AS varchar(200))+' ProductID from Products order by ProductID )'
      end  
end
exec(@queryStr)
end
在mysql中,如果去调用带输出参数的proc呢?? 这个proc,在mysql中应该如何调用啊? 谢谢!!

解决方案 »

  1.   

    你先转换SQL SERVER的SP 到 MYSQL的。然后
    call sp_...(,,,);
    select @queryStr;
      

  2.   

    mysql 的分页最简单啦,用 limit beginrow, pagesize 就可以了.调用带输出参数的proc,这样就可以call test(inParam1, ..., @outParam);
    select @outParam;其中, @outParam 是全局变量,不用定义的,拿来用就行
      

  3.   

    drop procedure if exists _PageQuery;
    DELIMITER $$
    CREATE PROCEDURE _PageQuery (
    IN queryStr varchar(8000), -- 查询语句
    IN beginRow int, -- 页起始的位置
    IN pageSize int -- 每页行数
    )
    BEGIN set @sql = concat(queryStr, ' limit ?, ?');
    set @row = beginRow;
    set @size = pageSize;
    PREPARE myStmt FROM @sql;
    EXECUTE myStmt USING @row, @size;
    DEALLOCATE PREPARE myStmt;END $$
    DELIMITER ;
      

  4.   

    狂晕,mysql直接用limit start,num 就可以拉,start为开始位置,num为查询的条数.