Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL एकाधिक डेटाबेस में मूल्य खोज रहा है

इससे आपको शुरुआत करनी चाहिए:

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'
;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कीवर्ड समर्थित नहीं:'मेटाडेटा' + MySQL

  2. (शीर्ष 5) और (अन्य सभी) की संख्या के आधार पर समूह

  3. Amazon RDS/Mysql में इस मेमोरी खपत पैटर्न की व्याख्या करें?

  4. दो अलग-अलग फ़ोरैच लूप के साथ एक ही सरणी में जोड़ना PHP/SQL

  5. फ़ॉर्मेटिंग खोए बिना टेक्स्टरेरा से MySQL डेटाबेस में टेक्स्ट सम्मिलित करना