use eepm_push;
DROP PROCEDURE IF EXISTS FountTable;
delimiter $$
create procedure FountTable()
begin
declare TableName varchar(64);
DECLARE cur_FountTable CURSOR FOR SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME LIKE 'msgfor%';
DECLARE EXIT HANDLER FOR not found CLOSE cur_FountTable;
#打开游标
OPEN cur_FountTable;
REPEAT
FETCH cur_FountTable INTO TableName;
SET @SQLSTR1 = CONCAT('select * from ',TableName,' where appId = ','''','cc055a4d-53b9-4cfc-9f1a-d8bad41b7502','''',' and createTime > ','''','2017-02-23 00:00:00','''');
PREPARE STMT1 FROM @SQLSTR1;
EXECUTE STMT1;
DEALLOCATE PREPARE STMT1;
UNTIL 0 END REPEAT;
#关闭游标
CLOSE cur_FountTable;
END $$
DELIMITER ;
call FountTable();
本文介绍了一个使用MySQL存储过程的示例,通过游标和动态SQL查询特定前缀的表中满足条件的数据。具体操作包括创建存储过程、声明游标、使用CONCAT拼接SQL语句并执行预处理语句。
2039

被折叠的 条评论
为什么被折叠?



