我必须尝试在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;
那么伙计们,我该怎么办?
感谢。
答案 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)