码迷,mamicode.com
首页 > 数据库 > 详细

Mysql自定义函数

时间:2016-08-05 21:27:12      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

1.mysql自定义函数

delimiter $$
create function f1(
    i1 int,
    i2 int)
returns int
BEGIN
    declare num int;
    set num = i1 + i2;
    return(num);
END $$
delimiter ;

2.删除函数

drop function func_name;

3、执行函数

# 获取返回值
declare @i VARCHAR(32);
select UPPER(alex) into @i;
SELECT @i;


# 在查询中使用
select f1(11,nid) ,name from tb2;

4.mysql 条件语句

1.if 条件语句

delimiter $$
CREATE PROCEDURE proc_if ()
BEGIN
    
    declare i int default 0;
    if i = 1 THEN
        SELECT 1;
    ELSEIF i = 2 THEN
        SELECT 2;
    ELSE
        SELECT 7;
    END IF;

END$$
delimiter ;

2.循环语句

  1)。while循环

delimiter \CREATE PROCEDURE proc_while ()
BEGIN

    DECLARE num INT ;
    SET num = 0 ;
    WHILE num < 10 DO
        SELECT
            num ;
        SET num = num + 1 ;
    END WHILE ;

END\delimiter ;

  2)。repeat循环

delimiter \CREATE PROCEDURE proc_repeat ()
BEGIN

    DECLARE i INT ;
    SET i = 0 ;
    repeat
        select i;
        set i = i + 1;
        until i >= 5
    end repeat;

END\delimiter ;

  3)。loop

delimiter \CREATE PROCEDURE proc_loop ()
BEGIN
    
    declare i int default 0;
    loop_label: loop
        select i;
        set i=i+1;
        if i>=5 then
            leave loop_label;
            end if;
    end loop;

END\delimiter ;

3、动态执行SQL语句

delimiter \DROP PROCEDURE IF EXISTS proc_sql \CREATE PROCEDURE proc_sql ()
BEGIN
    declare p1 int;
    set p1 = 11;
    set @p1 = p1;

    PREPARE prod FROM select * from tb2 where nid > ?;
    EXECUTE prod USING @p1;
    DEALLOCATE prepare prod; 

END\delimiter ;

 

 

 

Mysql自定义函数

标签:

原文地址:http://www.cnblogs.com/renfanzi/p/5742600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!