mysql 存储过程 为什么limit p1 就是limit后面不能带变量CREATE PROCEDURE `rep2`(p1 int)
BEGINselect id from ae order by id desc limit p1--------------------死活编译不能通过 提示 limit后面是变量
现在只能把他写死。 没有其他方法了??
解决方案 »
- 高手相助,哪里能下载到mysql-5.1.7.tar.gz, 或者mysql-5.1.9.tar.gz???
- 请教大家mysql里用binary做为主键
- ACL设计,查询语句求优化
- 请问,检索的时候,是用userid快呢,还是用email快?
- mysql数据库,直接用复制的数据库文件夹放在data下,控制台能访问数据并且存在,但是php页面却是空白。
- (求教,急~~~)一个表中,不同字段,相同的值,汇总的方法
- 我想设计一个跟网易一样的跟帖系统?请高手帮忙
- ODBC连接MySQL,服务启动前加载30W数据,请大神指教,看是否能在优化一下性能,代码如下:
- 关于mysql数据库备份优化的问题
- 怎么样把MYSQL的数据库文件拿出来
- 查询问题
- 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 提供思路