Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ดึงชื่อคอลัมน์ที่ขึ้นต้นด้วยตัวอักษรเฉพาะและต่อกันใน MySQL

บทความนี้สาธิตการใช้ INFORMATION_SCHEMA.COLUMNS ร่วมกับ GROUP_CONCAT() และ LIKE เพื่อดึงชื่อคอลัมน์ทั้งหมดที่ขึ้นต้นด้วยตัวอักษรเฉพาะ (เช่น 'Cl') และต่อกันเป็นสตริงเดียว

สร้างตารางตัวอย่าง

mysql> CREATE TABLE DemoTable671(
    ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName VARCHAR(100),
    ClientAge INT,
    ClientAddress VARCHAR(200),
    ClientCountryName VARCHAR(100)
);
Query OK, 0 rows affected (0.62 sec)

คิวรีดึงชื่อคอลัมน์ขึ้นต้นด้วย 'Cl' และต่อกัน

mysql> SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ' , ') 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'DemoTable671' 
  AND TABLE_SCHEMA = 'web' 
  AND COLUMN_NAME LIKE 'Cl%';

ผลลัพธ์

+-----------------------------------------------------------------------+
| group_concat(COLUMN_NAME SEPARATOR ' , ')                             |
+-----------------------------------------------------------------------+
| ClientId , ClientName , ClientAge , ClientAddress , ClientCountryName |
+-----------------------------------------------------------------------+

คำอธิบาย:

  • INFORMATION_SCHEMA.COLUMNS - ตาราง Metadata เก็บข้อมูลโครงสร้างตารางทั้งหมด
  • TABLE_SCHEMA = 'web' - ชื่อ Database (เปลี่ยนตามจริง)
  • COLUMN_NAME LIKE 'Cl%' - ค้นหาชื่อคอลัมน์ขึ้นต้นด้วย 'Cl'
  • GROUP_CONCAT(... SEPARATOR ' , ') - รวมชื่อคอลัมน์คั่นด้วยจุลภาคและช่องว่าง

ประโยชน์: ใช้สร้าง Dynamic SQL, ตรวจสอบ Schema, หรือสร้าง Code Generator