Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL Wyszukiwanie wartości w wielu bazach danych

To powinno Cię zacząć:

SELECT table_schema 
FROM information_schema.columns 
WHERE table_name = 'table1' AND column_name = 'id'
;

Na tej podstawie możesz wykorzystać wyniki w dowolnym języku programowania, którego używasz do tworzenia zapytań specyficznych dla każdej z tych baz danych.

Alternatywnie, ostatnio odkryłem, że nadużycia graniczne podobne do tego są pomocne.

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

Łączysz wyniki tego razem za pomocą UNION pomiędzy, a wynikowe zapytanie powinno dać listę wszystkich schematów, które mają tabelę o tej nazwie (i kolumnie), której wartość odpowiada searchId.

Edycja:zamieniono nieodpowiednie znaki wsteczne na pojedyncze cudzysłowy i... dodano to poniżej.

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. Policz liczbę unikalnych wartości

  2. Obsługa transakcji w silniku MyIsam

  3. MySQL:znajdź brakujące daty w zakresie dat

  4. Utwórz połączenie MySQL w Playframework za pomocą slick

  5. Wybierz wartości zaczynające się od liczby