mysql进:在存储过程中用select如何给变量赋值?
用select...into语句
下面是mysql 5.0的帮助文档的:
这个SELECT语法把选定的列直接存储到变量。因此,只有单一的行可以被取回。
SELECT id,data INTO x,y FROM test.t1 LIMIT 1;
注意,用户变量名在MySQL 5.1中是对大小写不敏感的。请参阅9.3节,“用户变量”。
重要: SQL变量名不能和列名一样。如果SELECT ... INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的局部变量,MySQL当前把参考解释为一个变量的名字。例如,在下面的语句中,xname 被解释为到xname variable 的参考而不是到xname column的:
CREATE PROCEDURE sp1 (x VARCHAR(5))
BEGIN
DECLARE xname VARCHAR(5) DEFAULT 'bob';
DECLARE newname VARCHAR(5);
DECLARE xid INT;
SELECT xname,id INTO newname,xid
FROM table1 WHERE xname = xname;
SELECT newname;
END;
当这个程序被调用的时候,无论table.xname列的值是什么,变量newname将返回值‘bob’。
存储过程是针对库的,通过一段代码,对这个库进行一些操作,具体代码格式如下:
对变量进行赋值: 存储过程内定义变量: 存储过程内为变量赋值: 存储过程体为 存储过程实例 存储过程的参数: 三种类型:IN/OUT/INOUT,这三种类型IN是传入类参数,存储过程体内可以用,OUT是可以给外部变量设置值,INOUT是具有两者的功能 OUT INOUT 查询存储过程: 例如: 删除存储过程用 MySQL存储过程的条件语句: if-else-then 例如: case语句 例如: 或者: while-end while语句: 例如:sql语句查出来无记录怎么设置默认值?
在SQL语句中,可以使用IFNULL或COALESCE函数设置默认值。IFNULL函数用于判断一个值是否为空,如果为空则返回后面指定的默认值;COALESCE函数用于从多个值中返回第一个非空的值,也可以在最后使用默认值作为备选项。例如,可以使用以下语句设置默认值:
SELECT IFNULL(column_name, default_value) FROM table_name;
或
SELECT COALESCE(column_name, default_value) FROM table_name;
其中,column_name是需要查询的列名,default_value是需要设置的默认值,table_name是需要查询的表名。这样,在查询时如果没有符合条件的记录,将会返回指定的默认值。
还没有评论,来说两句吧...