sql >> データベース >  >> RDS >> Mysql

mysqlデータベース内のデータベースごとにクエリを実行し、mysqlコマンド環境のみを使用して結果を合計または結合することは可能ですか?

    このようなことはするかもしれません。これをテストするための「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;
    



    1. OracleからPostgreSQLへ—カーソルと一般的なテーブル式

    2. MySQLで結果をランク付けするときにタイを処理するにはどうすればよいですか?

    3. 採用または採用:採用プロセスのデータモデル

    4. SQLServerで整数を10進数に変換する方法