mysql 存储过程 @@rowcount_mysql 存储过程 怎么定义变量 请问

mysql 存储过程 如何定义变量 请教

MSSQL sql server 2000写法

go

create proc loadUser

@uname varchar(16),

@upwd varchar(16),

@count int output

as

select * from users where uname=@uname and upwd=@upwd

if(@@error=0 and @@rowcount = 1)

set @count = 1;

else set @count=0;

go

在Mysql 当中怎么写呀

如何 定义一个变量

create procedure login(uname varchar(64),upwd varchar(64),out counts int)

[color=#00FFFF]DECLARE iCount int;

begin

SET iCount = 10;

SELECT iCount;

end[/color]

对了请问下 IF EXISTS(SELECT * FROM sysdatabases WHERE name='bookshop') 这样的语句 mysql 支持吗?就是

判断 有没有查出内容来??

------解决方案--------------------

如何 定义一个变量

你的方法是对的,用 DECLARE iCount INT; 来定义变量。

IF EXISTS(。。。)这种语句目前还不被MySQL 5.x支持,实现相同功能的做法是再定义一个变量,然后利用select .. into来对这个变量赋值,然后判断是否exists符合条件的记录。如果多记录,可以改为 select count(*) into ..

SQL code

mysql> delimiter // mysql> mysql> CREATE PROCEDURE login (uname varchar(64),upwd varchar(64),out counts int) -> BEGIN -> DECLARE iCount INT; -> DECLARE bExist INT DEFAULT 0; -> -> SET iCount = 10; -> -> SELECT 1 into bExist FROM t WHERE name=uname; #use the variable to check the IF EXISTS -> -> IF bExist>0 then -> SELECT iCount,'Record Found.'; -> ELSE -> SELECT iCount,'NOT EXISTS'; -> END IF; -> -> END; -> -> // Query OK, 0 rows affected (0.00 sec) mysql> mysql> delimiter ; mysql> call login('f3','pswd',@i); +--------+---------------+ | iCount | Record Found. | +--------+---------------+ | 10 | Record Found. | +--------+---------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.02 sec) mysql> call login('unkonw','pswd',@i); +--------+------------+ | iCount | NOT EXISTS | +--------+------------+ | 10 | NOT EXISTS | +--------+------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected, 1 warning (0.02 sec) mysql>

------解决方案--------------------

好像能用吧,我的存储过程就是是这样写的,没有报错呀

------解决方案--------------------

DECLARE iCount int;

begin

SET iCount = 10;

SELECT iCount;

MYSQ中是可以的

对了请问下 IF EXISTS(SELECT * FROM sysdatabases WHERE name='bookshop') 这样的语句 mysql 支持吗?就是

判断 有没有查出内容来??

select count(*) into @ee FROM sysdatabases WHERE name='bookshop'

if @ee>1 then

select 'OK';

ELSE

select 'NO';

END IF

欢迎大家阅读《mysql 存储过程 怎么定义变量 请问》,跪求各位点评,by 搞代码

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值