您的位置:首页 > 数据库 > MySQL

MySql带参数的存储过程编写(动态执行SQL语句)

2013-08-09 16:25 891 查看



该存储过程是根据用户输入的条件和排序方式查询用户的信息,排序条件可以没有

调用方式: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
from users where ',WhereCondition,' order by ',OrderByExpress);


end;


else


begin


set @sqlstr=concat('select id,name,password,age
from users where ',WhereCondition);


end;


end if;


prepare stmt from @sqlstr;


execute stmt;


end;

注:prepare stmt from @sqlstr; 这个地方 @sqlstr
必须是这样写,不能是declare 的变量,如果有其它写法也可以的话请留言,先谢了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: