Dette burde få dig i gang:
SELECT table_schema
FROM information_schema.columns
WHERE table_name = 'table1' AND column_name = 'id'
;
Ud fra dette kan du bruge resultaterne i det programmeringssprog, du bruger, til at komponere forespørgsler, der er specifikke for hver af disse databaser.
Alternativt har jeg fundet grænseoverskridelser, der ligner dette, nyttige på det seneste.
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'
;
Du sammenkæder resultaterne af dette sammen med UNION
mellem, og den resulterende forespørgsel skulle give dig en liste over alle skemaer, der har en tabel med det navn (og kolonne), hvis værdi matcher søge-id.
Rediger:Udskiftede upassende backticks ovenfor med enkelte anførselstegn, og... tilføjede dette nedenfor.
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'
;