इससे आपको शुरुआत करनी चाहिए:
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'
;