0

私の考えですがLIMIT、クエリ内で変更できるMySQLで関数を作成することはできませんか

この句は、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 に答える