ใน MySQL มีสองวิธีหลักในการดึงค่าสูงสุด (maximum value) จากคอลัมน์ที่เก็บตัวเลข วิธีแรกใช้ฟังก์ชัน MAX() และวิธีที่สองใช้ ORDER BY ... DESC LIMIT 1
รูปแบบคำสั่ง (Syntax)
SELECT MAX(yourColumnName) FROM yourTableName; -- หรือ SELECT * FROM yourTableName ORDER BY yourColumnName DESC LIMIT 1;
ตัวอย่างการสร้างตารางและข้อมูล
mysql> create table DemoTable (
Value int );
Query OK, 0 rows affected (0.84 sec)
mysql> insert into DemoTable values(45); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(87); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(56); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(77); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(85); Query OK, 1 row affected (0.17 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
+-------+ | Value | +-------+ | 45 | | 87 | | 56 | | 77 | | 85 | +-------+ 5 rows in set (0.00 sec)
วิธีที่ 1: ใช้ฟังก์ชัน MAX()
mysql> select max(Value) from DemoTable;
+------------+ | max(Value) | +------------+ | 87 | +------------+ 1 row in set (0.00 sec)
วิธีที่ 2: ใช้ ORDER BY DESC LIMIT 1
mysql> select * from DemoTable order by Value desc limit 1;
+-------+ | Value | +-------+ | 87 | +-------+ 1 row in set (0.00 sec)
หมายเหตุ: วิธี MAX() เร็วกว่าและเหมาะสำหรับการหาค่าเดียว ส่วน ORDER BY ... LIMIT 1 เหมาะเมื่อต้องการดึงแถวข้อมูลทั้งแถวที่มีค่าสูงสุด