Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL Mencari nilai di beberapa database

Ini akan membantu Anda memulai:

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

Dari sini, Anda dapat menggunakan hasilnya dalam bahasa pemrograman apa pun yang Anda gunakan untuk membuat kueri khusus untuk setiap basis data tersebut.

Sebagai alternatif, akhir-akhir ini saya menemukan pelanggaran batas yang mirip dengan ini berguna.

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

Anda menggabungkan hasil ini bersama-sama, dengan UNION antara, dan kueri yang dihasilkan akan memberi Anda daftar semua skema yang memiliki tabel dengan nama (dan kolom) tersebut yang nilainya cocok dengan searchId.

Sunting:Mengganti backtick yang tidak pantas di atas dengan tanda kutip tunggal, dan... menambahkan ini di bawah.

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. PHP MySQL INSERT mengembalikan nilai dengan satu eksekusi kueri

  2. MySQL JOIN baris terbaru saja?

  3. MySQL - Cara memilih baris dengan nilai maksimum bidang

  4. Bagaimana cara mengambil versi saat ini dari sistem manajemen basis data MySQL (DBMS)?

  5. Sintaks MySQL dan Kinerja 'ATAU'