So etwas könnte reichen. Ich habe nicht viele "Hunde mit Protokollen", um dies zu testen, aber ich habe eine leicht bearbeitete Version ausprobiert, und die Grundidee scheint zu funktionieren.
Erstellen Sie die Abfragezeichenfolge in einer Variablen und verwenden Sie dann eine vorbereitete Anweisung um es auszuführen.
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;