在过程中使用变量值创建MySQL查询

时间:2013-11-12 06:36:05

标签: mysql variables procedure

我必须尝试在MySQL查询过程中使用变量值 但它不起作用。这是我的程序:

SET @start=0;
SET @finish=150;

...

DECLARE curs1 CURSOR FOR SELECT tempDate FROM tbl_temp LIMIT @start,@finish;

...

我只想创建如下的查询

SELECT tempDate FROM tbl_temp LIMIT 0,150;

那么伙计们,我该怎么办?

感谢。

3 个答案:

答案 0 :(得分:2)

MySQL 5.5 中可以使用LIMIT子句中的变量或过程参数。

其他您需要使用预准备语句。从文档 - 在存储程序中,LIMIT参数可以使用整数值例程参数或自MySQL 5.5.6 的局部变量来指定。例如:

SET @skip=1; SET @numrows=5;
PREPARE STMT FROM 'SELECT * FROM tbl LIMIT ?, ?';
EXECUTE STMT USING @skip, @numrows;

更多信息 - SELECT syntax

答案 1 :(得分:0)

试试这个:

SET start=0;
SET finish=150;

DECLARE curs1 CURSOR FOR SELECT tempDate FROM tbl_temp LIMIT start,finish;

答案 2 :(得分:0)

目前,MySQL不支持http://bugs.mysql.com/bug.php?id=8094

中提到的LIMIT子句变量

但是,您可以使用预准备语句在下面的脚本中解决您的问题:

SET @start=0;
SET @finish=150;
SET @query = "SELECT tempDate FROM tbl_temp LIMIT " + @start + ", " + @finish
EXEC(@query)