读书人

这个存储过程为什么创建不了 ?解决方

发布时间: 2012-05-15 14:35:29 作者: rapoo

这个存储过程为什么创建不了 ?

SQL code
   create PROCEDURE find_address_by_page(in startid INT , in querycount int )BEGIN   -- select * from address wehre a_id = startid ;  //如果用这条语句都可以创建过程 成功   select * from address limit startid , querycount;  -- 这条语句怎么不能成功呢?end;


错误

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'startid , querycount;
end' at line 4


[解决办法]
select * from address limit startid , querycount;
LIMIT后必须是常数,不能是变量。

如果需要使用则可以使用 PREPARE 方式。
引用
mysql> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
mysql> SET @a = 3;
mysql> SET @b = 4;
mysql> EXECUTE stmt1 USING @a, @b;
+------------+
| hypotenuse |
+------------+
| 5 |
+------------+
mysql> DEALLOCATE PREPARE stmt1;



[解决办法]
语法错误,limit是用来做限制的!
[解决办法]
limit 不能用变量,这样不确定。
[解决办法]
你的startid,querycount是变量而不是常量。
select * from address limit startid , querycount

读书人网 >Mysql

热点推荐