このようなことはするかもしれません。これをテストするための「logs-with-dogs」をたくさん持っていませんが、少し編集したバージョンを試しましたが、基本的な考え方はうまくいくようです。
変数にクエリ文字列を作成してから、プリペアドステートメント<を使用します。 / a> 実行します。
SELECT @query:=CONCAT(
'select count(*) from ('
, GROUP_CONCAT( CONCAT( y.prefix, x.table_schema, y.postfix ) SEPARATOR ' UNION ALL ' )
, ') as total_count' )
FROM (
SELECT DISTINCT table_schema
FROM information_schema.tables
WHERE table_schema LIKE '%dog%'
) AS x
JOIN (
SELECT
'select * from ' AS prefix
, '.log where insane = 1' AS postfix
) AS y
;
-- SELECT @query AS Query;
PREPARE STMT FROM @query;
EXECUTE STMT;
DEALLOCATE PREPARE STMT;