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

Cách hiển thị một số cột (không phải tất cả) trong MySQL?

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 WHERE chỉ 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 *