日期:2014-05-16  浏览次数:20697 次

mysql的limit offset后面不能跟变量 只能硬编码数字的问题

今天在写mysql存储过程的时候遇到一问题

mysql版本呢:5.1.40

不知道高一点的版本有无此问题

如果高版本不存在此问题亲跳过

 

sql如下:

SELECT pid,NAMES INTO _dp_id,_dp_names FROM department LIMIT 1 OFFSET _dp_count;


_dp_count是我声明的一变量

 

执行的时候报错...

 

 

错误码: 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 '_dp_count;

 

原来 mysql的 limit 和 offset后面都不能跟变量

 

解决方法是用 CONCAT 把sql拼起来

 

然后PREPARE 再EXECUTE 就OK了 

 

 

 

我试了postgreSQL9.0.10 不存在此问题

 

 

 

不知道其他数据库会有此问题不