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

Tìm tất cả cột có tên dài hơn 5 ký tự trong MySQL (INFORMATION_SCHEMA)

Để liệt kê tất cả các cột trong database có độ dài tên lớn hơn 5 ký tự, truy vấn INFORMATION_SCHEMA.COLUMNS với điều kiện CHAR_LENGTH(COLUMN_NAME) > 5.

Truy vấn

mysql> SELECT TABLE_NAME, COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE CHAR_LENGTH(COLUMN_NAME) > 5 
  AND TABLE_SCHEMA = DATABASE();

Kết quả mẫu (rút gọn)

+-------------------+-------------------------+
| TABLE_NAME        | COLUMN_NAME             |
+-------------------+-------------------------+
| DemoTable         | StudentId               |
| DemoTable         | StudentFirstName        |
| DemoTable         | StudentLastName         |
| DemoTable         | StudentAge              |
| DemoTable         | StudentCountryName      |
| DemoTable         | CustomerId              |
| DemoTable         | CustomerProductName     |
| DemoTable         | CustomerProductQuantity |
| ...               | ...                     |
+-------------------+-------------------------+
(55 rows in set)

Giải thích

  • INFORMATION_SCHEMA.COLUMNS: View chứa metadata của tất cả cột trong tất cả bảng của tất cả schema.
  • CHAR_LENGTH(COLUMN_NAME): Độ dài tên cột tính bằng ký tự (Unicode safe). Dùng LENGTH() nếu tính bằng byte.
  • TABLE_SCHEMA = DATABASE(): Lọc chỉ schema/database hiện tại. Bỏ điều kiện này để quét toàn server (cần quyền).

Mở rộng: Tìm cột theo pattern tên

-- Tên cột chứa 'Date'
WHERE COLUMN_NAME LIKE '%Date%'

-- Tên cột kết thúc bằng 'Id'
WHERE COLUMN_NAME LIKE '%Id'

-- Tên cột bắt đầu bằng 'User'
WHERE COLUMN_NAME LIKE 'User%'

Ứng dụng thực tế

  • Kiểm tra quy ước đặt tên (naming convention): tên cột quá ngắn (< 3 ký tự) hoặc quá dài (> 30 ký tự).
  • Tìm cột chưa tuân thủ chuẩn: thiếu tiền tố, hậu tố, viết tắt không chuẩn.
  • Hỗ trợ refactor database, sinh documentation, migration script.