Truy vấn INFORMATION_SCHEMA.COLUMNS kết hợp NOT IN và GROUP_CONCAT để liệt kê tên cột cần thiết.
Tạo bảng mẫu
mysql> CREATE TABLE DemoTable780(
CustomerId INT,
CustomerName VARCHAR(100),
CustomerAge INT,
CustomerCountryName VARCHAR(100),
IsMarried TINYINT(1)
);
Query OK, 0 rows affected (0.47 sec)
Truy vấn lấy tên cột trừ CustomerId và CustomerCountryName
mysql> SELECT GROUP_CONCAT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'web'
AND TABLE_NAME = 'DemoTable780'
AND COLUMN_NAME NOT IN ('CustomerId', 'CustomerCountryName')
GROUP BY TABLE_SCHEMA, TABLE_NAME;
Kết quả:
+------------------------------------+ | GROUP_CONCAT(COLUMN_NAME) | +------------------------------------+ | CustomerName,CustomerAge,IsMarried | +------------------------------------+
Ứng dụng: Tự động sinh câu lệnh SELECT động, tạo view, hoặc kiểm tra schema trong code ứng dụng.
Lưu ý: Thay 'web' bằng tên database thực tế của bạn.