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=@upwdif(@@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 支持吗?就是
判断 有没有查出内容来??
go
create proc loadUser
@uname varchar(16),
@upwd varchar(16),
@count int output
as
select * from users where uname=@uname and upwd=@upwdif(@@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 支持吗?就是
判断 有没有查出内容来??
解决方案 »
- 8G的mysqldump文件导入mysql中一般需要多大的预留空间
- [菜鸟在线等]
- postgreSQL dos进入互动式文字终端机 输入问题
- 给分求助!求“mysql-connector-net-6.3.5”功能说明手册
- 我想问下
- 如何设置mysql字符集
- mysql中的管理工具中,哪个软件对中文支持最好呀?用了一下mysql query browser ,对中文支持太差了,打开*.sql文件,竟然中文全为乱码!!!
- 请问怎样在my sql中存入字符"\"?
- pt-table-checksum工具主机和从机的端口不一样,怎么解决?
- 请教一条sql语句
- 我有个字段是timestamp类型,默认为CURRENT_TIMESTAMP
- 求助,vc6.0下postgresql8.3.4 中文显示乱码?
你的方法是对的,用 DECLARE iCount INT; 来定义变量。IF EXISTS()这种语句目前还不被MySQL 5.x支持,实现相同功能的做法是再定义一个变量,然后利用select .. into来对这个变量赋值,然后判断是否exists符合条件的记录。如果多记录,可以改为 select count(*) into ..
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>类似的语法可以在MySQL的官方网站查看详细的说明和例子。http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html
第20章:存储程序和函数
目录20.1. 存储程序和授权表20.2. 存储程序的语法20.2.1. CREATE PROCEDURE和CREATE FUNCTION20.2.2. ALTER PROCEDURE和ALTER FUNCTION20.2.3. DROP PROCEDURE和和DROP FUNCTION20.2.4. SHOW CREATE PROCEDURE和SHOW CREATE FUNCTION20.2.5. SHOW PROCEDURE STATUS和SHOW FUNCTION STATUS20.2.6. CALL语句20.2.7. BEGIN ... END复合语句20.2.8. DECLARE语句20.2.9. 存储程序中的变量20.2.10. 条件和处理程序20.2.11. 光标20.2.12. 流程控制构造20.3. 存储程序、函数、触发程序和复制:常见问题20.4. 存储子程序和触发程序的二进制日志功能
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