Liệt kê một số cột cụ thể của bảng trong MySQL
Sử dụng SHOW COLUMNS ... WHERE Field NOT IN (...) để hiển thị cấu trúc bảng nhưng loại trừ các cột không muốn xem.
Cú pháp
SHOW COLUMNS FROM yourTableName WHERE Field NOT IN ('col1', 'col2', ...);
Ví dụ: Ẩn cột StudentAddress và StudentAllSubjectScore
Tạo bảng:
mysql> CREATE TABLE student_Information (
-> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName VARCHAR(50),
-> StudentAge INT,
-> StudentAddress VARCHAR(100),
-> StudentAllSubjectScore INT
-> );
Cấu trúc đầy đủ (DESC):
+------------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------------+--------------+------+-----+---------+----------------+ | StudentId | int(11) | NO | PRI | NULL | auto_increment | | StudentName | varchar(50) | YES | | NULL | | | StudentAge | int(11) | YES | | NULL | | | StudentAddress | varchar(100) | YES | | NULL | | | StudentAllSubjectScore | int(11) | YES | | NULL | | +------------------------+--------------+------+-----+---------+----------------+
Chỉ hiển thị 3 cột đầu:
mysql> SHOW COLUMNS FROM student_Information
WHERE Field NOT IN ('StudentAddress', 'StudentAllSubjectScore');
Kết quả:
+-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | StudentId | int(11) | NO | PRI | NULL | auto_increment | | StudentName | varchar(50) | YES | | NULL | | | StudentAge | int(11) | YES | | NULL | | +-------------+--------------+------+-----+---------+----------------+
Các cách khác
- DESCRIBE / DESC:
DESC table_name(hiển thị tất cả) - INFORMATION_SCHEMA.COLUMNS: Linh hoạt nhất
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT, EXTRA FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'db_name' AND TABLE_NAME = 'table_name' AND COLUMN_NAME NOT IN ('col1', 'col2'); - SHOW CREATE TABLE: Xem toàn bộ DDL
Lưu ý
SHOW COLUMNS WHEREchỉ lọc hiển thị, không ảnh hưởng dữ liệu- Tên cột trong NOT IN phải khớp chính xác (case-sensitive tùy collation)
- MySQL 8.0+: Có thể dùng
INVISIBLE COLUMNđể ẩn cột hoàn toàn khỏi SELECT *