ใช้ information_schema.tables ร่วมกับ GROUP_CONCAT() เพื่อดึงชื่อตารางทั้งหมดในฐานข้อมูลมาแสดงในแถวเดียว คั่นด้วยคอมม่า
คำสั่งดึงชื่อตารางทั้งหมดในฐานข้อมูล 'web'
mysql> select group_concat(table_name) from information_schema.tables where table_schema = 'web';
ผลลัพธ์ (ตัวอย่าง - รายการยาวมาก)
+----------------------------------------------------------------------------------------------------------------------------------+ | group_concat(table_name) | +----------------------------------------------------------------------------------------------------------------------------------+ | demo_table725,demotabe619,demotabe620,demotable211,demotable212,... (รายการต่อเนื่อง) | +----------------------------------------------------------------------------------------------------------------------------------+ 1 row in set, 1 warning (0.01 sec)
คำอธิบาย:
information_schema.tables- ตารางระบบที่เก็บข้อมูลเมตาของทุกตารางtable_schema = 'web'- กรองเฉพาะฐานข้อมูลชื่อ 'web'GROUP_CONCAT(table_name)- รวมชื่อตารางทั้งหมดเป็นสตริงเดียว
ข้อควรระวัง: GROUP_CONCAT มีความยาวสูงสุดคือ group_concat_max_len (ค่าเริ่มต้น 1024 ตัวอักษร) หากตารางเยอะมาก อาจถูกตัดทอน ต้องตั้งค่า: SET SESSION group_concat_max_len = 1000000; ก่อนรันคำสั่ง
ทางเลือก: ใช้ SHOW TABLES FROM web; แทน ซึ่งจะคืนค่าเป็นหลายแถว แทนที่จะเป็นสตริงเดียว