一般的な文字で始まるテーブル名があります。
mytab_user
mytab_group
mytab_mode
mytab_blah
同様のテーブルが多数あります。次のようなことを行うmysqlのコマンドラインはありますか?
select * from mytab_*;
これらすべてのテーブルのすべてのデータを一度に表示してください。
一般的な文字で始まるテーブル名があります。
mytab_user
mytab_group
mytab_mode
mytab_blah
同様のテーブルが多数あります。次のようなことを行うmysqlのコマンドラインはありますか?
select * from mytab_*;
これらすべてのテーブルのすべてのデータを一度に表示してください。
ストアド プロシージャを使用してタスクを実行します。以下は、それを行う例です。
use mydatabase;
DROP PROCEDURE IF EXISTS showalldata;
delimiter //
CREATE PROCEDURE showalldata()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE a CHAR(255);
DECLARE cur1 CURSOR FOR (
SELECT table_name
FROM information_schema.tables
WHERE table_schema = DATABASE()
AND table_name like 'mytab\_%'
ORDER BY table_name ASC);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO a;
IF done THEN
LEAVE read_loop;
END IF;
SET @sql = CONCAT('SELECT * from ', a);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE cur1;
END //
delimiter ;
CALL showalldata();