sql >> Base de Datos >  >> RDS >> Mysql

¿Es posible ejecutar una consulta para cada base de datos en bases de datos mysql y sumar o combinar resultados usando solo el entorno de comando mysql?

Algo como esto podría funcionar. No tengo un montón de 'perros con registros' para probar esto, pero probé una versión ligeramente editada, y la idea básica parece funcionar.

Cree la cadena de consulta en una variable, luego use una declaración preparada para ejecutarlo.

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;