MariaDB社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3172|回复: 4
打印 上一主题 下一主题

请帮忙看看关于存储过程的问题

[复制链接]
跳转到指定楼层
1#
发表于 2008-12-3 15:34:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我写这个存储过程如下:
DELIMITER $$
DROP PROCEDURE IF EXISTS `qzcz`.`pro_check` $$
CREATE PROCEDURE `qzcz`.`pro_check` (in select_a varchar(20),in from_a varchar(20),in to_a varchar(20),in aa int,in bb int)
BEGIN
select * from business where depart='select_a' and (date1 between 'from' and 'to') order by id asc limit aa,bb;
END $$
DELIMITER ;

运行好系统提示错误如下:
Script line: 4 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 'aa,bb;



系统提示输入变量语法错误,但是我不知道错在那里?
CREATE PROCEDURE `qzcz`.`pro_check` (in select_a varchar(20),in from_a varchar(20),in to_a varchar(20),in aa int,in bb int)
END' at line 3
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
5#
发表于 2008-12-3 16:47:43 | 只看该作者

恢復

mysql中如果limit后要接變量應該拼sqltext 如下

create procedure test (in a int)
begin
set @sqltext:=concat('select * from testP order by id asc limit  0,',a);
prepare stmt from @sqltext;
execut stmt;
deallocate prepare stmt;
end;


大概的就是這樣,你在自己機子上測試下
麻煩下次提問的時候把數據庫版本號和相關的表結構創建的腳本一起附上
4#
发表于 2008-12-3 16:07:00 | 只看该作者
還有表的相關結構發上來
3#
发表于 2008-12-3 16:03:39 | 只看该作者
問問題的時候把MYSQL相關的版本信息也發過來
2#
 楼主| 发表于 2008-12-3 15:36:54 | 只看该作者
补充说明: 原代码是这样的
DELIMITER $$

DROP PROCEDURE IF EXISTS `qzcz`.`pro_check` $$
CREATE PROCEDURE `qzcz`.`pro_check` (in select_a varchar(20),in from_a varchar(20),in to_a varchar(20),in aa int,in bb int)
BEGIN
select * from business where depart=select_a and (date1 between from_a and to_a) order by id asc limit aa,bb;
END $$

DELIMITER ;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|MariaDB社区 ( 京ICP备07012489号    |
业务联系: QQ:48474881; 邮箱: 48474881@qq.com; 电话:13911732319
声明:本站部分文章是网友转载,若未经作者同意或署名有误,请联系网站管理员。

GMT+8, 2024-9-20 06:08 , Processed in 0.070185 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表