การใช้ ORDER BY DESC LIMIT 1
วิธีง่ายที่สุดในการดึงแถวที่มีค่าสูงสุดในคอลัมน์ ID คือ เรียงลำดับจากมากไปน้อย (DESC) แล้วจำกัดผลลัพธ์ 1 แถว
รูปแบบคำสั่ง
SELECT * FROM yourTableName ORDER BY yourColumnName DESC LIMIT 1 OFFSET 0;
ตัวอย่างการสร้างตารางและข้อมูล
mysql> CREATE TABLE HighestIdOrderBy (
-> EmployeeId INT,
-> EmployeeName VARCHAR(200)
-> );
Query OK, 0 rows affected (0.58 sec)
mysql> INSERT INTO HighestIdOrderBy VALUES(200,'David');
mysql> INSERT INTO HighestIdOrderBy VALUES(1000,'Bob');
mysql> INSERT INTO HighestIdOrderBy VALUES(600,'John');
mysql> INSERT INTO HighestIdOrderBy VALUES(300,'Johnson');
mysql> INSERT INTO HighestIdOrderBy VALUES(100,'Carol');
ข้อมูลทั้งหมด
mysql> SELECT * FROM HighestIdOrderBy;
+------------+--------------+ | EmployeeId | EmployeeName | +------------+--------------+ | 200 | David | | 1000 | Bob | | 600 | John | | 300 | Johnson | | 100 | Carol | +------------+--------------+ 5 rows in set (0.00 sec)
คำสั่งดึง ID สูงสุด
mysql> SELECT * FROM HighestIdOrderBy
-> ORDER BY EmployeeId DESC
-> LIMIT 1 OFFSET 0;
+------------+--------------+ | EmployeeId | EmployeeName | +------------+--------------+ | 1000 | Bob | +------------+--------------+ 1 row in set (0.00 sec)
หมายเหตุ: สามารถใช้ LIMIT 1 แทน LIMIT 1 OFFSET 0 ได้ ผลลัพธ์จะเหมือนกัน