ოთო*_*აძე 7 mysql variables stored-procedures limit
我有一个存储过程,如果我在没有变量的情况下编写以下查询,则all:运行良好
CREATE PROCEDURE `some_proc` ()
BEGIN
SELECT blabla FROM mytable ORDER BY id LIMIT 3,1
.....
Run Code Online (Sandbox Code Playgroud)
但是,如果我在LIMIT表达式中使用变量作为起始编号,我会收到错误:
CREATE PROCEDURE `some_proc` ()
BEGIN
DECLARE start INT;
SET start = 3;
SELECT blabla FROM mytable ORDER BY id LIMIT start,1
.....
Run Code Online (Sandbox Code Playgroud)
有没有办法在存储过程内的LIMIT表达式中使用变量?
FSP*_*FSP 18
您不能直接使用变量.我见过的一个很好的解决方法是 -
CREATE PROCEDURE `some_proc` (
IN _START INTEGER,
IN _LIMIT INTEGER
)
BEGIN
PREPARE STMT FROM
" SELECT * FROM products LIMIT ?,? ";
SET @START = _START;
SET @LIMIT = _LIMIT;
EXECUTE STMT USING @START, @LIMIT;
DEALLOCATE PREPARE STMT;
END $$
Run Code Online (Sandbox Code Playgroud)
另一个搜索返回了这个 - http://bugs.mysql.com/bug.php?id=8094.
您还可以阅读手册中有关预准备语句的更多信息.
| 归档时间: |
|
| 查看次数: |
13219 次 |
| 最近记录: |