passing LIMIT as parameters to MySQL sproc

Kyle picture Kyle · May 20, 2010 · Viewed 29k times · Source

I'm creating a paging class and need to pass in two parameters to my MySQL stored procedure for the LIMIT clause.

I'm passing them in as INTs and trying something like this

SELECT *
FROM
`MyTable`
LIMIT
MyFirstParamInt, MySecondParamInt

it gives me an error when I try and save the sproc though. Is there a way to do this that I'm just missing? Or am I going to have to EVAL the whole query and EXECUTE it?

Answer

Quassnoi picture Quassnoi · May 20, 2010

Prior to 5.5.6, LIMIT could not be parameterized in MySQL stored procedures. You'd need to build the query dynamically and execute it.

In 5.5.6 and above, you can just pass the stored procs parameters as arguments to LIMIT and OFFSET as long as they are INTEGER.