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 @ 2019-12-22 17:34  那些年的代码  阅读(1072)  评论(0编辑  收藏  举报