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

เรียงลำดับผลลัพธ์ MySQL โดยไม่ระบุชื่อคอลัมน์ ใช้หมายเลขลำดับแทน

ใน MySQL สามารถใช้หมายเลขตำแหน่งคอลัมน์ (Positional Number) ในคำสั่ง ORDER BY แทนชื่อคอลัมน์ได้ โดย 1 = คอลัมน์แรก, 2 = คอลัมน์ที่สอง เป็นต้น

รูปแบบคำสั่ง

SELECT * FROM yourTableName ORDER BY 1 DESC LIMIT yourLimitValue;

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่มข้อมูล:

mysql> create table DemoTable1325 (Id int, Name varchar(20));
mysql> insert into DemoTable1325 values(100,'Chris'),(101,'Bob'),(120,'David'),(115,'Sam'),(130,'Carol'),(150,'Mike');

ข้อมูลต้นฉบับ:

+------+-------+
| Id   | Name  |
+------+-------+
| 100  | Chris |
| 101  | Bob   |
| 120  | David |
| 115  | Sam   |
| 130  | Carol |
| 150  | Mike  |
+------+-------+

คำสั่งเรียงคอลัมน์แรก (Id) จากมากไปน้อย จำกัด 4 แถว

mysql> select * from DemoTable1325 order by 1 DESC LIMIT 4;

ผลลัพธ์

+------+-------+
| Id   | Name  |
+------+-------+
| 150  | Mike  |
| 130  | Carol |
| 120  | David |
| 115  | Sam   |
+------+-------+

ข้อควรระวัง:

  • ใช้ได้กับ ORDER BY, GROUP BY แต่ ไม่แนะนำ ให้ใช้ใน Production code
  • หากเปลี่ยนลำดับคอลัมน์ใน SELECT (หรือเพิ่มคอลัมน์) หมายเลขจะชี้ผิดเป้าหมาย
  • ควรใช้ชื่อคอลัมน์ชัดเจน (ORDER BY Id DESC) เพื่อความชัดเจนและปลอดภัย
  • ฟีเจอร์นี้เหมาะสำหรับการทดสอบหรือ Ad-hoc query รวดเร็ว