इसके लिए MAX() फ़ंक्शन के साथ SUBSTRING() का उपयोग करें।
टेबल बनाएं
mysql> create table DemoTable (
-> Id varchar(200)
-> );
Query OK, 0 rows affected (0.52 sec)
रिकॉर्ड्स डालें
mysql> insert into DemoTable values('2019-0515-1980');
Query OK, 1 row affected (0.49 sec)
mysql> insert into DemoTable values('2019-0516-780');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('2019-0517-2780');
Query OK, 1 row affected (0.16 sec)
सभी रिकॉर्ड्स देखें
mysql> select * from DemoTable;
+----------------+ | Id | +----------------+ | 2019-0515-1980 | | 2019-0516-780 | | 2019-0517-2780 | +----------------+ 3 rows in set (0.00 sec)
VARCHAR फ़ील्ड से अधिकतम मान प्राप्त करने का क्वेरी
mysql> select max(Id) from DemoTable
-> where Id LIKE CONCAT(SUBSTRING(Id, 1, 4), '%');
आउटपुट:
+----------------+ | max(Id) | +----------------+ | 2019-0517-2780 | +----------------+ 1 row in set (0.00 sec)
व्याख्या:
SUBSTRING(Id, 1, 4)- पहले 4 वर्ण (वर्ष "2019")CONCAT(..., '%')- "2019%" पैटर्न बनाता हैWHERE Id LIKE ...- केवल 2019 से शुरू होने वाली आईडीMAX(Id)- लेक्सिकोग्राफिक रूप से अधिकतम (स्ट्रिंग तुलना)
चेतावनी: VARCHAR पर MAX() लेक्सिकोग्राफिक तुलना करता है। संख्यात्मक तुलना के लिए, पहले CAST करें या संख्यात्मक भाग निकालें।