table 이름이 table_1, table_2 .. 이런식으로 되어있을 때 table 번호를 바꿔가면서 데이터 수를 얻어오는 프로시저.
일일이 select 하기 번거로워서 찾아보다가 결국 답을 얻었다. :D
DELIMITER $$ CREATE PROCEDURE documentCount ( IN p_start INT, IN p_end INT, IN id INT ) BEGIN DECLARE table_iterator INT; DECLARE p_counter INT; SET p_counter = 0; SET table_iterator = p_start; WHILE table_iterator <= p_end DO SET @stm1 = CONCAT('SELECT count(*) INTO @tmp_counter FROM table_', table_iterator); SET @stm2 = CONCAT(' WHERE id=', id); SET @query = CONCAT(@stm1, @stm2); PREPARE get_count FROM @query; EXECUTE get_count; SET p_counter=p_counter+@tmp_counter; DROP PREPARE get_count; SET table_iterator = table_iterator + 1; END WHILE; SELECT p_counter; END; $$ DELIMITER ;
참고한 사이트