mysql 存储过程 为什么limit p1 就是limit后面不能带变量CREATE PROCEDURE `rep2`(p1 int)
BEGINselect id from ae order by id desc limit p1--------------------死活编译不能通过 提示 limit后面是变量
现在只能把他写死。 没有其他方法了??
解决方案 »
- php 连接数据库的问题
- 在储存过程中怎么得到SELECT返回结果的条数??
- MYSQL 允许 UNICODE吗
- 急!急!急! update userinfo set Prestige_Value=sun((select Prestige_Value from userinfo where UserId=1)+1
- 一个初级问题:postgresql*_* help me!!!
- Date时间类型的查询结果值总是“0000:00:00”,请问有没有办法让查询值显示为空
- insert into语句的写法?
- mysql启动问题
- Delphi 6如何和MySql联结,有例子吗?
- auto_increment 如果到头会怎么样
- 查询问题
- MYSQL事务封装的问题
看你想实现什么功能,或许可以使用 PREPARE / EXECUTE / DEALLOCATE 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;
5.0.45-log
5.0.45想知道他们之间有区别没哟????
Query OK, 0 rows affected (0.00 sec)
Statement preparedmysql> SET @a = 3;
Query OK, 0 rows affected (0.00 sec)mysql> EXECUTE stmt1 USING @a;
+------+
| a |
+------+
| 1 |
| 2 |
| 2 |
+------+
3 rows in set (0.00 sec)mysql> DEALLOCATE PREPARE stmt1;
Query OK, 0 rows affected (0.00 sec)
测试通过
COMMENT 'This procedure generates string "Hello,world!"'
BEGINPREPARE stmt1 FROM 'SELECT * from a limit ?';
SET @a = p1;
EXECUTE stmt1 USING @a;
DEALLOCATE PREPARE stmt1;
END;
存储过程可以完全实现 感谢ACMAIN_CHM 提供思路