Това трябва да ви помогне да започнете:
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'
;