0

只是我的一个想法,但不可能在 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

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

4

1 回答 1

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);
于 2010-10-22T22:15:19.723 回答