Isso deve começar:
SELECT table_schema
FROM information_schema.columns
WHERE table_name = 'table1' AND column_name = 'id'
;
A partir disso, você pode usar os resultados em qualquer linguagem de programação que esteja usando para compor consultas específicas para cada um desses bancos de dados.
Alternativamente, tenho achado úteis abusos limítrofes semelhantes a esse ultimamente.
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'
;
Você concatena os resultados disso juntos, com
UNION
entre, e a consulta resultante deve fornecer uma lista de todos os esquemas que possuem uma tabela com esse nome (e coluna) cujo valor corresponde a searchId. Edit:Substituí os acentos graves inapropriados acima por aspas simples e... adicionei isso abaixo.
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'
;