mysql 遍历所有表并条件查询

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();

  

posted @ 2017-02-24 11:48  HongEgg  阅读(9257)  评论(0编辑  收藏  举报