Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tìm cột cụ thể trong tất cả bảng của một database MySQL

Sử dụng INFORMATION_SCHEMA.COLUMNS với COLUMN_NAME và LIKE để tìm cột cụ thể.

Truy vấn tìm cột chứa "StudentName" trong database "web"

mysql> SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
    -> FROM INFORMATION_SCHEMA.COLUMNS
    -> WHERE column_name LIKE '%StudentName%'
    -> AND table_schema = 'web';

Kết quả - 19 bảng có cột StudentName

+-------------------+-------------+-----------+-------------+----------------+
| TABLE_NAME        | COLUMN_NAME | DATA_TYPE | IS_NULLABLE | COLUMN_DEFAULT |
+-------------------+-------------+-----------+-------------+----------------+
| demotable215      | StudentName | varchar   | YES         | NULL           |
| demotable221      | StudentName | varchar   | YES         | NULL           |
| ...               | ...         | ...       | ...         | ...            |
| DemoTable         | StudentName | varchar   | YES         | NULL           |
| view_DemoTable    | StudentName | varchar   | YES         | NULL           |
+-------------------+-------------+-----------+-------------+----------------+
19 rows in set (0.07 sec)

Giải thích:

  • INFORMATION_SCHEMA.COLUMNS: View hệ thống chứa metadata của tất cả cột.
  • table_schema: Tên database (schema).
  • LIKE '%StudentName%': Tìm cột chứa chuỗi "StudentName" (khớp một phần).
  • Dùng = 'StudentName' nếu cần khớp chính xác.

Các cột hữu ích khác trong INFORMATION_SCHEMA.COLUMNS: CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, COLUMN_KEY (PRI, UNI, MUL), EXTRA (auto_increment), v.v.