คำสั่ง SELECT ที่ไม่คืนข้อมูล (Void Query)
ใช้ LIMIT 0 เพื่อให้ Query รันสำเร็จแต่ไม่คืนแถวใดๆ
ตัวอย่าง
mysql> create table DemoTable(Name varchar(100));
Query OK, 0 rows affected (0.47 sec)
mysql> insert into DemoTable values('Chris');
mysql> insert into DemoTable values('Sam');
mysql> insert into DemoTable values('Robert');
mysql> insert into DemoTable values('Mike');
Void Query
mysql> select * from DemoTable limit 0;
Empty set (0.00 sec)
กรณีการใช้งาน
- ทดสอบ Syntax/Query Plan: รัน EXPLAIN หรือทดสอบ Query ไม่ต้องข้อมูลจริง
- Application Framework: บาง ORM ใช้ LIMIT 0 ดึง Metadata (Columns, Types) ของตาราง
- Benchmark: วัด Overhead ของ Query Parser/Planner โดยไม่รวม I/O
- Conditional Query: Dynamic SQL ที่อาจไม่ต้องการข้อมูลในบางเงื่อนไข
คำสั่งที่เกี่ยวข้อง
-- ดูโครงสร้างตาราง (ไม่ดูข้อมูล)
DESCRIBE DemoTable;
SHOW COLUMNS FROM DemoTable;
-- ดู Query Plan
EXPLAIN SELECT * FROM DemoTable LIMIT 0;
สรุป
SELECT ... LIMIT 0 เป็น Void Query ที่รันสำเร็จ คืน Empty Set ใช้ได้สำหรับทดสอบ Metadata หรือ Query Plan