sql >> Databasteknik >  >> RDS >> Mysql

Är det möjligt att köra en fråga för varje databas i mysql-databaser och summera eller kombinera resultat med enbart mysql-kommandomiljö?

Något sådant här kan göra. Jag har inte ett gäng 'hundar-med-loggar' att testa detta mot, men jag provade en något redigerad version, och grundidén verkar fungera.

Bygg upp frågesträngen i en variabel och använd sedan en förberedd sats för att utföra det.

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;



  1. CodeIgniter:Hur man gör en Select (Distinct Fieldname) MySQL-fråga

  2. Hur får man tabellstrukturer från en .frm-fil med PHP?

  3. MySQL:BESTÄLL AV med tomt datum '0000-00-00' som sist men resten ASC

  4. Visar bilder från MySQL-databasen i en enda kolumn i JTable