ใช่ สามารถใช้ได้ แต่ใน MySQL 8.0+ ไม่จำเป็นแล้ว
ข้อมูลพื้นฐาน
- ก่อน MySQL 5.7:
GROUP BYทำ Implicit Sorting → ใช้ORDER BY NULLปิดการเรียงเพื่อประสิทธิภาพ - MySQL 8.0+:
GROUP BYไม่ทำ Implicit Sorting แล้ว →ORDER BY NULLไม่มีผล / ไม่จำเป็น
ตัวอย่างการใช้งาน
1. สร้างตารางและข้อมูล
mysql> CREATE TABLE DemoTable (Name VARCHAR(10));
mysql> INSERT INTO DemoTable VALUES ('John'), ('Bob'), ('David'), ('Sam'), ('Mike');
2. ใช้ ORDER BY NULL
mysql> SELECT * FROM DemoTable ORDER BY NULL;
ผลลัพธ์ (ลำดับการ Insert)
+-------+ | Name | +-------+ | John | | Bob | | David | | Sam | | Mike | +-------+
สรุปการเปลี่ยนแปลง MySQL Version
| Version | GROUP BY Behavior | ORDER BY NULL |
|---|---|---|
| < 5.7 | Implicit Sort | มีประโยชน์ (ปิด Sort) |
| 5.7 (sql_mode=ONLY_FULL_GROUP_BY) | No Implicit Sort | ไม่จำเป็น |
| 8.0+ | No Implicit Sort | ไม่จำเป็น (No-op) |
แนะนำ: ระบุ ORDER BY ชัดเจน
-- ต้องการเรียงตาม Name SELECT * FROM DemoTable ORDER BY Name; -- ต้องการลำดับ Insert (ไม่มี PK) - ไม่รับประกัน SELECT * FROM DemoTable; -- ไม่ควรพึ่งพา