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

ใช้ ORDER BY NULL ใน MySQL

ใช่ สามารถใช้ได้ แต่ใน 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

VersionGROUP BY BehaviorORDER BY NULL
< 5.7Implicit 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;  -- ไม่ควรพึ่งพา