mysql存储过程执行动态sql语句
2013-06-13 10:44 Lves Li 阅读(221) 评论(0) 编辑 收藏 举报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 姓名="李兴乐"',' ');