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

mysql存储过程执行动态sql语句

2013-06-13 10:44 751 查看
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
PROCEDURE `student`.`select_view_score`(IN WhereCondition VARCHAR(500),IN OrderByExpress VARCHAR(100))
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/
BEGIN
DECLARE stmt VARCHAR(2000);
IF LENGTH(OrderbyExpress)>0 THEN
BEGIN
SET @sqlstr=CONCAT('select *  from view_score where ',WhereCondition,' order by ',OrderByExpress);
END;
ELSE
BEGIN
SET @sqlstr=CONCAT('select *  from view_score where ',WhereCondition);
END;
END IF;
PREPARE stmt FROM @sqlstr;
EXECUTE stmt;
END


调用

CALL select_view_score('成绩>2 and 姓名="李兴乐"',' ');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: