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

หาค่าสูงสุดจากคอลัมน์ VARCHAR ใน MySQL

ใช้ MAX() ร่วมกับ SUBSTRING() และ LIKE เพื่อหาค่าสูงสุดในรูปแบบเฉพาะ

สร้างตารางตัวอย่าง

mysql> CREATE TABLE DemoTable (
    -> Id VARCHAR(200)
    -> );

เพิ่มข้อมูลตัวอย่าง

mysql> INSERT INTO DemoTable VALUES('2019-0515-1980');
mysql> INSERT INTO DemoTable VALUES('2019-0516-780');
mysql> INSERT INTO DemoTable VALUES('2019-0517-2780');

แสดงข้อมูล

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+----------------+
| Id             |
+----------------+
| 2019-0515-1980 |
| 2019-0516-780  |
| 2019-0517-2780 |
+----------------+

คำสั่งหาค่าสูงสุดที่ขึ้นต้นด้วย 2019

mysql> SELECT MAX(Id) FROM DemoTable
    -> WHERE Id LIKE CONCAT(SUBSTRING(Id, 1, 4), '%');

ผลลัพธ์:

+----------------+
| MAX(Id)        |
+----------------+
| 2019-0517-2780 |
+----------------+

คำอธิบาย: SUBSTRING(Id, 1, 4) = '2019' | CONCAT(..., '%') = '2019%' | WHERE Id LIKE '2019%' กรองเฉพาะที่ขึ้นต้น 2019 | MAX() หาค่าสูงสุดแบบสตริง (lexicographic) ซึ่งในรูปแบบนี้ตรงกับตัวเลขมากที่สุด