การแสดงตารางด้วยเงื่อนไข LIKE หลายค่า
คำสั่ง SHOW TABLES รองรับ LIKE เพียงค่าเดียว แต่สามารถใช้ WHERE ร่วมกับ OR เพื่อกรองหลายรูปแบบได้
รูปแบบคำสั่ง
SHOW TABLES FROM your_database_name
WHERE Tables_in_your_database_name LIKE '%pattern1%'
OR Tables_in_your_database_name LIKE '%pattern2%'
OR Tables_in_your_database_name LIKE '%pattern3%';
ตัวอย่างการใช้งาน
ฐานข้อมูล test มีหลายตาราง ต้องการแสดงเฉพาะตารางที่ชื่อมี userrole, view_student, wholewordmatchdemo
SHOW TABLES FROM test
WHERE Tables_in_test LIKE '%userrole%'
OR Tables_in_test LIKE '%view_student%'
OR Tables_in_test LIKE '%wholewordmatchdemo%';
ผลลัพธ์
| Tables_in_test |
|---|
| userrole |
| view_student |
| wholewordmatchdemo |
วิธีทางเลือก: ใช้ INFORMATION_SCHEMA (ยืดหยุ่นกว่า)
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'test'
AND (TABLE_NAME LIKE '%userrole%'
OR TABLE_NAME LIKE '%view_student%'
OR TABLE_NAME LIKE '%wholewordmatchdemo%');
ข้อดีของ INFORMATION_SCHEMA
- 🔍 กรองได้ละเอียดกว่า (TABLE_TYPE, ENGINE, ROWS, SIZE, COMMENT)
- 🔗 JOIN กับ TABLES อื่นได้
- 📊 ใช้ใน Subquery/Stored Procedure ได้ง่าย
- 🎯 รองรับ Regular Expression (REGEXP) สำหรับ Pattern ซับซ้อน
ตัวอย่างกับ REGEXP
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'test'
AND TABLE_NAME REGEXP 'userrole|view_student|wholewordmatchdemo';