MySQL में ORDER BY ... DESC LIMIT 1 का उपयोग करके ऑटो-इन्क्रीमेंट ID के आधार पर सबसे हालिया (उच्चतम ID) रिकॉर्ड चुनें।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName VARCHAR(100),
-> UserMessage TEXT
-> );
Query OK, 0 rows affected (1.17 sec)
mysql> INSERT INTO DemoTable(UserName, UserMessage) VALUES
-> ('Adam', 'Hi'), ('Chris', 'Awesome'), ('Robert', 'Nice'), ('David', 'Good Morning!!!');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+----+----------+-----------------+ | Id | UserName | UserMessage | +----+----------+-----------------+ | 1 | Adam | Hi | | 2 | Chris | Awesome | | 3 | Robert | Nice | | 4 | David | Good Morning!!! | +----+----------+-----------------+ 4 rows in set (0.00 sec)
शीर्ष रिकॉर्ड (उच्चतम ID) चुनना
mysql> SELECT * FROM DemoTable ORDER BY Id DESC LIMIT 1;
आउटपुट
+----+----------+-----------------+ | Id | UserName | UserMessage | +----+----------+-----------------+ | 4 | David | Good Morning!!! | +----+----------+-----------------+ 1 row in set (0.00 sec)
उपयोग के मामले:
- नवीनतम लॉग प्रविष्टि प्राप्त करना
- सबसे हालिया ऑर्डर/संदेश देखना
- नवीनतम उपयोगकर्ता गतिविधि प्राप्त करना
प्रदर्शन: प्राइमरी की (Id) पर इंडेक्स होने से यह क्वेरी बहुत तेज़ होती है (इंडेक्स का अंतिम प्रविष्टि पढ़ना)।
वैकल्पिक: SELECT * FROM DemoTable WHERE Id = (SELECT MAX(Id) FROM DemoTable); - सबक्वेरी दृष्टिकोण, कुछ मामलों में ऑप्टिमाइज़र द्वारा बेहतर तरीके से निष्पादित हो सकता है।