嵌入式培训

亿元级外企嵌入式培训企业

  • 全国服务监督电话4001118989
  • 嵌入式培训_MySql存储过程带参数处理方式

    发布:嵌入式培训  来源:嵌入式学习笔记  时间: 2015年01月09日

  • ...

  • mysql数据库在现在开发中占有越来与重要的位置,下文介绍的MySql存储过程是带参数的存储过程(动态执行SQL语句),该MySql存储过程是根据用户输入的条件和排序方式查询用户的信息,排序条件可以没有调用方式:

    call GetUsersDynamic(age<=30,);

    /********动态查询用户的信息********/

    CREATE PROCEDURE GetUsersDynamic(WhereCondition varchar(500),OrderByExpress varchar(100))

    begin

    declare stmt varchar(2000);

    if LENGTH(OrderbyExpress)>0 then

    begin

    set @sqlstr=concat(select id,name,password,age,getdate(adddate) as AddDate from users where ,WhereCondition, order by ,OrderByExpress);

    end;

    else

    begin

    set @sqlstr=concat(select id,name,password,age,getdate(adddate) as AddDate from users where ,WhereCondition);

    end;

    end if;

    prepare stmt from @sqlstr;

    execute stmt;

    end;

    getdate()是一个自定义的函数,作用是返回日期的短格式

    CREATE DEFINER=`root`@`localhost` FUNCTION `getdate`($date datetime) RETURNS varchar(50) CHARSET latin1
    return date_format($date,%Y-%m-%d);
    动态插入数据的MySql存储过程,(注意四个单引号表示一个一引号):
    CREATE DEFINER=`root`@`localhost` PROCEDURE `InsertUser`(in name2 varchar(50),in password2 varchar(32),in age2 int,in adddate2 datetime)
       begin

    DECLARE stmt varchar(2000);

    set @sqlstr=concat(insert into users(name,password,age,adddate) values();

    set @sqlstr=concat(@sqlstr,,name2,,,,,password2,,,,age2,,,,adddate2,,));

    prepare stmt from @sqlstr;

    execute stmt;

    end;

  • 上一篇:教你如何区分mysql版本

    下一篇:在MySQL数据库中的多表删除方法

网站导航
2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56