Mysql程序修改限制和偏移量

时间:2010-10-22 15:09:02

标签: mysql pagination procedures

在我的脑海中只是一个想法,但是不可能在MySQL中创建一个可以修改查询中的LIMIT的函数

该子句将是一个简单的计算函数,可根据pageno * perpage

计算出偏移量

实施例

SELECT * FROM items PAGE(4,20)

这与

相同
SELECT * FROM items LIMIT 100,20

我之前从未创建任何程序,因此下面的内容会出错......

CREATE PROCEDURE (int pagno, int limit)
BEGIN
     ofsset = roundup(pageno * limit)
END

但是在该查询中实际设置了查询的限制和偏移量?

1 个答案:

答案 0 :(得分:0)

你可以做这样的事情:

drop procedure if exists foo;

delimiter #

create procedure foo
(
in p_limit int unsigned
)
proc_main:begin

set SQL_SELECT_LIMIT = p_limit;

select * from <table>...

set SQL_SELECT_LIMIT = DEFAULT; 

end proc_main #

delimiter ;
call foo(64);