Toto by vám mělo začít:
SELECT table_schema
FROM information_schema.columns
WHERE table_name = 'table1' AND column_name = 'id'
;
Z toho můžete výsledky použít v jakémkoli programovacím jazyce, který používáte, k vytváření dotazů specifických pro každou z těchto databází.
Alternativně jsem v poslední době shledal hraniční zneužívání podobné tomuto užitečné.
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'
;
Výsledky zřetězíte dohromady pomocí UNION
mezi a výsledný dotaz by vám měl poskytnout seznam všech schémat, která mají tabulku s tímto názvem (a sloupcem), jejichž hodnota odpovídá searchId.
Upravit:Nevhodná zpětná zaškrtnutí nahoře byla nahrazena jednoduchými uvozovkami a...toto přidáno níže.
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'
;