Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL Tìm kiếm giá trị trên nhiều cơ sở dữ liệu

Điều này sẽ giúp bạn bắt đầu:

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

Từ đó, bạn có thể sử dụng kết quả bằng bất kỳ ngôn ngữ lập trình nào bạn đang sử dụng để soạn các truy vấn cụ thể cho từng cơ sở dữ liệu đó.

Ngoài ra, gần đây, tôi nhận thấy các hành vi lạm dụng đường biên giới tương tự như điều này hữu ích.

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

Bạn nối các kết quả của điều này với nhau, với UNION giữa và truy vấn kết quả sẽ cung cấp cho bạn danh sách tất cả các lược đồ có bảng với tên đó (và cột) có giá trị khớp với searchId.

Chỉnh sửa:Đã thay thế các dấu ngoặc kép không phù hợp ở trên bằng dấu ngoặc kép và ... đã thêm dấu ngoặc kép bên dưới.

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. Trình xử lý thoát MySQL bị bỏ qua

  2. Không thể truy cập người dùng gốc MySql, ngay cả sau khi đặt mật khẩu qua safemode trong thiết bị đầu cuối linux

  3. Cách thực hiện tìm kiếm Nhạy cảm trong MySql

  4. Làm thế nào để chạy hai truy vấn cập nhật trong bộ lập lịch sự kiện mysql?

  5. PHP mysqli () không hoạt động