Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để tìm tất cả các bảng có chứa columnA và columnB trong MySQL?

Để tìm các tên cột cụ thể, hãy sử dụng information_schema.columns Ở đây, tôi đang sử dụng Id thay cho cộtA và Tên thay cho cộtB -

mysql> select table_name as TableNameFromWebDatabase
   -> from information_schema.columns
   -> where column_name IN ('Id', 'Name')
   -> group by table_name
   -> having count(*) = 3;

Điều này sẽ tạo ra kết quả sau. Sau đây là bảng với các cột Id và Tên -

+--------------------------+
| TableNameFromWebDatabase |
+--------------------------+
| student                  |
| distinctdemo             |
| secondtable              |
| groupconcatenatedemo     |
| indemo                   |
| ifnulldemo               |
| demotable211             |
| demotable212             |
| demotable223             |
| demotable233             |
| demotable251             |
| demotable255             |
+--------------------------+
12 rows in set (0.25 sec)

Để chứng minh, chúng ta hãy kiểm tra mô tả của một trong các bảng. Sau đây là truy vấn -

mysql> desc demotable233;

Điều này sẽ tạo ra kết quả sau. Tại đây, bạn có thể thấy chúng tôi có các cột Int và Name -

+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| Id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| Name  | varchar(20) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)