มี 2 วิธีหลัก: 1) ORDER BY ... DESC LIMIT 1, 2) ใช้ MAX() กับ Primary Key
วิธีที่ 1: ORDER BY DESC LIMIT 1
SELECT * FROM yourTable ORDER BY yourColumn DESC LIMIT 1;
วิธีที่ 2: ใช้ MAX()
SET @maxId = (SELECT MAX(yourColumn) FROM yourTable); SELECT * FROM yourTable WHERE yourColumn = @maxId;
ตัวอย่างการใช้งาน
สร้างตาราง lastEntryDemo:
mysql> CREATE TABLE lastEntryDemo (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Name VARCHAR(30),
-> Age INT,
-> PRIMARY KEY(Id)
-> );
เพิ่มข้อมูล 7 แถว:
mysql> INSERT INTO lastEntryDemo(Name, Age) VALUES('Larry',24),('John',21),('David',22),('Bob',25),('Carol',29),('Mike',23),('Sam',20);
ข้อมูลทั้งหมด
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | Larry | 24 | | 2 | John | 21 | | 3 | David | 22 | | 4 | Bob | 25 | | 5 | Carol | 29 | | 6 | Mike | 23 | | 7 | Sam | 20 | +----+-------+------+
วิธีที่ 1: เรียง Name DESC LIMIT 1
mysql> SELECT * FROM lastEntryDemo ORDER BY Name DESC LIMIT 1;
+----+------+------+ | Id | Name | Age | +----+------+------+ | 7 | Sam | 20 | +----+------+------+
วิธีที่ 2: ใช้ MAX(Id)
mysql> SET @MaxId = (SELECT MAX(Id) FROM lastEntryDemo); mysql> SELECT * FROM lastEntryDemo WHERE Id = @MaxId;
+----+------+------+ | Id | Name | Age | +----+------+------+ | 7 | Sam | 20 | +----+------+------+
แนะนำ: ใช้ Primary Key (AUTO_INCREMENT) กับ MAX() เร็วกว่าและเชื่อถือได้กว่า ORDER BY คอลัมน์อื่น