mysql提供了大量的函数供开发者使用:如count(), sum(), datediff(), left(), right()
....
但是,有时候,mysql 自带的函数 不能满足我们开发者的需求是, 我们需要定义自己的函数,
如:我们要吧一个表里面所有 名字为张三 的 存款金额的 和, 我们当然可以用更简单的方式 求得我们想要的结果; 但是这里,我们要用自定义函数 和 数据库游标来实现:
[b]create function getMoney(username varchar(64)) reruens double
begin
declare totalMoney double default 0.0;
declare err_flag varchar(10) default 'ok';
declare temp_money double default 0.0;
declare records cousor for select money from accont where name = username
declare continue handler for sqlstate '02000' set err_flag = null;
open records;
fetch records into temp_flag;
while(err_flag is not null) do
set totalMoney= totalMoney+temp_flag;
fetch records into temp_flag;
end while;
close records;
return totalMoney;
end [/b]
这样 我们想得到某个人的存款 , 只要调用这个函数,传入存款人名字就可以了......
附:mysql 函数不支持动态sql.....
....
但是,有时候,mysql 自带的函数 不能满足我们开发者的需求是, 我们需要定义自己的函数,
如:我们要吧一个表里面所有 名字为张三 的 存款金额的 和, 我们当然可以用更简单的方式 求得我们想要的结果; 但是这里,我们要用自定义函数 和 数据库游标来实现:
[b]create function getMoney(username varchar(64)) reruens double
begin
declare totalMoney double default 0.0;
declare err_flag varchar(10) default 'ok';
declare temp_money double default 0.0;
declare records cousor for select money from accont where name = username
declare continue handler for sqlstate '02000' set err_flag = null;
open records;
fetch records into temp_flag;
while(err_flag is not null) do
set totalMoney= totalMoney+temp_flag;
fetch records into temp_flag;
end while;
close records;
return totalMoney;
end [/b]
这样 我们想得到某个人的存款 , 只要调用这个函数,传入存款人名字就可以了......
附:mysql 函数不支持动态sql.....