带参数的MySql存储过程

数据库 MySQL
下文对带参数的MySql存储过程的写法进行了详细的叙述,供您参考学习,如果您对MySql存储过程方面感兴趣的话,不妨一看。

下文介绍的MySql存储过程是带参数的存储过程(动态执行SQL语句),该MySql存储过程是根据用户输入的条件和排序方式查询用户的信息,排序条件可以没有调用方式:
call GetUsersDynamic('age<=30','');

  1. /********动态查询用户的信息********/  
  2. CREATE PROCEDURE GetUsersDynamic(WhereCondition varchar(500),OrderByExpress varchar(100))  
  3. begin  
  4. declare stmt varchar(2000);  
  5. if LENGTH(OrderbyExpress)>0 then  
  6. begin  
  7.      set @sqlstr=concat('select id,name,password,age,getdate(adddate) as AddDate from users where ',WhereCondition,' order by ',OrderByExpress);  
  8. end;  
  9. else  
  10. begin  
  11.      set @sqlstr=concat('select id,name,password,age,getdate(adddate) as AddDate from users where ',WhereCondition);  
  12. end;  
  13. end if;  
  14. prepare stmt from @sqlstr;  
  15. execute stmt;  
  16. end;  

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

  1. CREATE DEFINER=`root`@`localhost` FUNCTION `getdate`($date datetime) RETURNS varchar(50) CHARSET latin1  
  2. return date_format($date,'%Y-%m-%d'); 

动态插入数据的MySql存储过程,(注意四个单引号表示一个一引号):

  1. CREATE DEFINER=`root`@`localhost` PROCEDURE `InsertUser`(in name2 varchar(50),in password2 varchar(32),in age2 int,in adddate2 datetime)  
  2. begin  
  3. DECLARE stmt varchar(2000);  
  4. set @sqlstr=concat('insert into users(name,password,age,adddate) values(');  
  5. set @sqlstr=concat(@sqlstr,'''',name2,'''',',','''',password2,'''',',',age2,',','''',adddate2,'''',')');  
  6. prepare stmt from @sqlstr;  
  7. execute stmt;  
  8. end; 

 

 

 

【编辑推荐】

取得MySQL表信息的语句

mysql插入Clob字段的实例

常见MySql字段的默认长度

MySQL中INSERT的一般用法

MySQL索引类型介绍

责任编辑:段燃 来源: 互联网
相关推荐

2011-08-23 13:14:05

JDBC带输出参数的存储过程

2010-06-02 10:09:29

MySQL 存储过程参

2010-10-09 16:58:59

MYSQL存储过程

2009-11-11 11:27:02

ADO.NET存储过程

2010-09-27 16:04:00

2010-04-16 11:39:56

Oracle存储过程

2021-10-15 06:43:11

数据库存储过程

2018-04-18 09:18:44

数据库MySQL存储过程

2010-05-19 14:03:41

MySQL 存储过程

2010-10-09 16:26:59

mysql存储过程

2020-11-26 10:33:44

MySQL存储函数

2019-01-02 13:03:53

MySQL存储权限

2010-06-01 15:09:55

MySQL 存储过程

2010-09-25 15:54:23

SQL存储过程

2010-11-12 09:18:13

SQL Server存

2010-06-07 15:36:36

MySQL存储过程

2010-11-22 14:47:22

MySQL存储过程

2011-07-21 16:28:20

MySQL数据库带游标的存储过程

2020-11-02 13:24:49

MySQL数据库存储

2009-01-19 08:59:04

PHP调用MySQL存储过程MySQLi扩展
点赞
收藏

51CTO技术栈公众号