ใช้ information_schema.columns เพื่อดึงรายชื่อคอลัมน์ของตาราง
Syntax
select column_name from information_schema.columns where table_schema='yourDatabaseName' and table_name='yourTableName';
สร้างตารางตัวอย่าง
mysql> create table DemoTable (
EmployeeId int,
EmployeeFirstName varchar(20),
EmployeeLastName varchar(20),
EmployeeAge int,
EmployeeCountryName varchar(40),
IsMarried tinyint(1),
isActive ENUM('ACTIVE','INACTIVE') );
Query OK, 0 rows affected (0.65 sec)
คิวรี่ดูชื่อคอลัมน์
mysql> select column_name from information_schema.columns where table_schema='web' and table_name='DemoTable';
ผลลัพธ์:
+---------------------+ | COLUMN_NAME | +---------------------+ | EmployeeId | | EmployeeFirstName | | EmployeeLastName | | EmployeeAge | | EmployeeCountryName | | IsMarried | | isActive | +---------------------+ 7 rows in set (0.00 sec)
คอลัมน์ที่มีประโยชน์ใน information_schema.columns
| คอลัมน์ | คำอธิบาย |
|---|---|
| TABLE_SCHEMA | ชื่อฐานข้อมูล |
| TABLE_NAME | ชื่อตาราง |
| COLUMN_NAME | ชื่อคอลัมน์ |
| ORDINAL_POSITION | ลำดับคอลัมน์ (1, 2, 3...) |
| COLUMN_DEFAULT | ค่า Default |
| IS_NULLABLE | YES/NO |
| DATA_TYPE | ชนิดข้อมูล (int, varchar, date...) |
| CHARACTER_MAXIMUM_LENGTH | ความยาวสูงสุด (สำหรับ string) |
| NUMERIC_PRECISION/SCALE | Precision/Scale (สำหรับ numeric) |
| COLUMN_TYPE | Definition เต็ม (เช่น varchar(40)) |
| COLUMN_KEY | PRI, UNI, MUL (Key type) |
| EXTRA | auto_increment, VIRTUAL GENERATED ฯลฯ |
คิวรี่ที่มีประโยชน์เพิ่มเติม
-- ดูโครงสร้างเต็ม SELECT COLUMN_NAME, DATA_TYPE, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT, EXTRA FROM information_schema.columns WHERE table_schema = 'web' AND table_name = 'DemoTable' ORDER BY ORDINAL_POSITION; -- หาคอลัมน์ Primary Key SELECT COLUMN_NAME FROM information_schema.columns WHERE table_schema = 'web' AND table_name = 'DemoTable' AND COLUMN_KEY = 'PRI';
คำสั่งสั้นๆ (MySQL Client)
DESC DemoTable; -- หรือ SHOW COLUMNS FROM DemoTable;