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

MySQL複数のデータベース間で価値を検索

    これで始められます:

    SELECT table_schema 
    FROM information_schema.columns 
    WHERE table_name = 'table1' AND column_name = 'id'
    ;
    

    これにより、使用しているプログラミング言語で結果を使用して、これらの各データベースに固有のクエリを作成できます。

    代わりに、私は最近、これに似た境界性の虐待を見つけています。

    SELECT CONCAT("SELECT '", table_schema, "' "
                  "FROM `", table_schema, "`.`", table_name, "` "
                  "WHERE `", column_name, "` = ", searchId
           ) AS qStr
    FROM information_schema.columns 
    WHERE table_name = 'table1' AND column_name = 'id'
    ;
    

    この結果をUNIONで連結します の間に、結果のクエリは、値がsearchIdと一致するその名前(および列)のテーブルを持つすべてのスキーマのリストを提供する必要があります。

    編集:上記の不適切なバッククォートを一重引用符に置き換え、...これを以下に追加しました。

    SET @criteriaVal := "'somestring'";
    -- SET @criteriaVal := 3; -- for example
    
    SELECT CONCAT("SELECT '", table_schema, "' "
                  "FROM `", table_schema, "`.`", table_name, "` "
                  "WHERE `", column_name, "` = ", @criteriaVal
           ) AS qStr
    FROM information_schema.columns 
    WHERE table_name = 'table1' AND column_name = 'id'
    ;
    


    1. MySQLのJSON_CONTAINS()の例

    2. Linux上のPostgreSQLの構成パラメーターwork_mem

    3. ヒキガエルの代替品

    4. OraOleadbドライバーを使用してOracleストアドプロシージャを呼び出す従来のASP