Để lấy danh sách tên cột của một bảng và chuyển về chữ thường, truy vấn view INFORMATION_SCHEMA.COLUMNS kết hợp hàm LOWER().
Tạo bảng mẫu
mysql> CREATE TABLE DemoTable (
UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserFirstName VARCHAR(20),
UserLastName VARCHAR(20),
UserAge INT,
UserCountryName VARCHAR(20)
);
Truy vấn lấy tên cột chữ thường
mysql> SELECT LOWER(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'DemoTable';
Kết quả
+--------------------+
| LOWER(COLUMN_NAME) |
+--------------------+
| userid |
| userfirstname |
| userlastname |
| userage |
| usercountryname |
+--------------------+
Mở rộng: Lấy thêm thông tin cột
SELECT
LOWER(COLUMN_NAME) AS column_name,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH,
IS_NULLABLE,
COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'DemoTable';
Ứng dụng
- Sinh code tự động (ORM, DTO, Entity) cần naming convention snake_case/lowercase.
- So sánh schema giữa các môi trường (dev, staging, prod) không phân biệt hoa/thường.
- Tạo dynamic SQL an toàn hơn.
Lưu ý: TABLE_NAME trong INFORMATION_SCHEMA.COLUMNS phân biệt chữ hoa/thường tùy lower_case_table_names system variable. Trên Linux thường phân biệt, Windows/Mac thường không. Nên dùng TABLE_NAME = 'DemoTable' chính xác như khi tạo.