คุณสามารถรับรายการสุดท้ายในตาราง MySQL โดยใช้ ORDER BY วิธีแรกมีดังนี้:
กรณีที่ 1 :ใช้ DESC LIMIT
เลือก * จาก yourTableName ORDER BY yourColumnName DESC LIMIT 1;
วิธีที่สองมีดังนี้:
กรณีที่ 2 :ใช้ MAX()
SET @anyVariableName =(SELECT MAX(yourColumnName) จาก yourTableName);SELECT *FROM yourtableName โดยที่ yourColumnName =@anyVariableName;
เพื่อทำความเข้าใจทั้งสองวิธี ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:
mysql> สร้างตาราง lastEntryDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> Name varchar(30), -> Age int, -> PRIMARY KEY(Id) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ ( 0.71 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:
mysql> แทรกลงในค่า lastEntryDemo(Name,Age)('Larry',24);Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่าlastEntryDemo(ชื่อ,อายุ)('John',21);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงใน lastEntryDemo(ชื่อ,อายุ) ค่า('David',22);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงใน lastEntryDemo(ชื่อ,อายุ) ค่า ('Bob',25); ตกลง แบบสอบถาม 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงใน lastEntryDemo (ชื่ออายุ) ค่า ('Carol', 29); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.17 วินาที) mysql> แทรกค่า LastEntryDemo(Name,Age)('Mike',23);Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกในค่า lastEntryDemo(Name,Age)('Sam',20);Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:
mysql> เลือก *จาก lastEntryDemo;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+---------+------+| รหัส | ชื่อ | อายุ |+----+-------+------+| 1 | แลร์รี่ | 24 || 2 | จอห์น | 21 || 3 | เดวิด | 22 || 4 | บ๊อบ | 25 || 5 | แครอล | 29 || 6 | ไมค์ | 23 || 7 | แซม | 20 |+----+-------+------+7 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามเพื่อรับรายการสุดท้ายโดยใช้ ORDER BY
กรณีที่ 1 :DESC LIMIT
แบบสอบถามมีดังนี้:
mysql> เลือก *จากคำสั่ง LastEntryDemo ตามชื่อ desc จำกัด 1;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+------+------+| รหัส | ชื่อ | อายุ |+----+------+------+| 7 | แซม | 20 |+---+------+------+1 แถวในชุด (0.00 วินาที)กรณีที่ 2 :ใช้ MAX()
แบบสอบถามมีดังนี้:
mysql> set @MaxId =(เลือก max(Id) จาก lastEntryDemo);Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)mysql> เลือก *from lastEntryDemo โดยที่ Id =@MaxId;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+------+------+| รหัส | ชื่อ | อายุ |+----+------+------+| 7 | แซม | 20 |+---+------+------+1 แถวในชุด (0.00 วินาที)