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

คิวรี MySQL เลือก 10 แถวแรกพร้อมเรียงลำดับ (LIMIT 10)

บทความนี้สาธิตวิธีเลือก 10 แถวแรกจากตาราง MySQL โดยเรียงลำดับก่อน (ASC) แล้วค่อยกลับมาจากมากไปน้อย (DESC) เพื่อให้ได้ 10 ค่าที่น้อยที่สุด แต่แสดงจากมากไปน้อย

สร้างตารางและข้อมูล 15 แถว

mysql> CREATE TABLE DemoTable683 (Page INT);
Query OK, 0 rows affected (0.83 sec)

mysql> INSERT INTO DemoTable683 VALUES(100), (101), (102), (103), (104), (105), (106), (107), (108), (109), (110), (111), (112), (113), (114);

คิวรีเลือก 10 แถวแรก (น้อยที่สุด) แล้วเรียงจากมากไปน้อย

mysql> SELECT * FROM (
    SELECT * FROM DemoTable683 ORDER BY Page ASC LIMIT 10
) tbl ORDER BY Page DESC;

ผลลัพธ์ (100-109 เรียงจาก 109 ลง 100)

+------+
| Page |
+------+
| 109  |
| 108  |
| 107  |
| 106  |
| 105  |
| 104  |
| 103  |
| 102  |
| 101  |
| 100  |
+------+

คำอธิบาย:

  • Subquery: ORDER BY Page ASC LIMIT 10 - เลือก 10 ค่าน้อยที่สุด (100-109)
  • Outer Query: ORDER BY Page DESC - เรียง 10 ค่านั้นจากมากไปน้อย
  • ต้องใช้ Alias (tbl) สำหรับ Subquery ใน FROM Clause

กรณีทั่วไป: หากต้องการแค่ 10 แถวแรกตามลำดับปกติ ใช้ SELECT * FROM table ORDER BY col LIMIT 10 เลย