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

หาคอลัมน์ที่ชื่อยาวกว่า 5 ตัวอักษรด้วย HAVING ใน MySQL

ใช้ HAVING CHAR_LENGTH(COLUMN_NAME) > 5 กับ INFORMATION_SCHEMA.COLUMNS เพื่อกรองคอลัมน์ที่ชื่อยาว

คำสั่งค้นหา

SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
HAVING CHAR_LENGTH(COLUMN_NAME) > 5;

ผลลัพธ์ตัวอย่าง (บางส่วน)

+-------------------+-------------------------+
| TABLE_NAME        | COLUMN_NAME             |
+-------------------+-------------------------+
| DemoTable         | StudentId               |
| DemoTable         | StudentFirstName        |
| DemoTable         | StudentLastName         |
| DemoTable         | StudentCountryName      |
| DemoTable         | CustomerProductName     |
| DemoTable         | CustomerProductQuantity |
| ...               | ...                     |
+-------------------+-------------------------+

คำอธิบาย:

  • TABLE_SCHEMA = DATABASE() — กรองเฉพาะฐานข้อมูลปัจจุบัน
  • HAVING ใช้แทน WHERE เพราะกรองหลัง aggregation (แม้จะไม่มี GROUP BY ก็ใช้ได้)
  • CHAR_LENGTH() นับจำนวนตัวอักษร (รองรับ UTF-8)

ผลลัพธ์จริงจะแสดงคอลัมน์ทั้งหมดในฐานข้อมูลที่ชื่อยาวกว่า 5 ตัวอักษร