Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में MAX() और सबक्वेरी का उपयोग करके रिकॉर्ड्स से अंतिम (नवीनतम) तारीख कैसे खोजें

सबक्वेरी के साथ MAX() का उपयोग करके नवीनतम तारीख खोजना

अंतिम तारीख यानी नवीनतम तारीख प्राप्त करने के लिए, सबक्वेरी के साथ एग्रीगेट फंक्शन MAX() का उपयोग करें।

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ExpiryDate DATE
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable (ExpiryDate) VALUES ('2018-12-31');
mysql> INSERT INTO DemoTable (ExpiryDate) VALUES ('2019-09-01');
mysql> INSERT INTO DemoTable (ExpiryDate) VALUES ('2019-09-01');
mysql> INSERT INTO DemoTable (ExpiryDate) VALUES ('2016-08-30');
mysql> INSERT INTO DemoTable (ExpiryDate) VALUES ('2019-06-23');

सभी रिकॉर्ड्स देखें:

mysql> SELECT * FROM DemoTable;

आउटपुट:

+----+------------+
| Id | ExpiryDate |
+----+------------+
| 1  | 2018-12-31 |
| 2  | 2019-09-01 |
| 3  | 2019-09-01 |
| 4  | 2016-08-30 |
| 5  | 2019-06-23 |
+----+------------+

अंतिम तारीख वाले रिकॉर्ड्स खोजने के लिए क्वेरी:

mysql> SELECT * FROM DemoTable
    WHERE ExpiryDate = (SELECT MAX(ExpiryDate) FROM DemoTable);

आउटपुट:

+----+------------+
| Id | ExpiryDate |
+----+------------+
| 2  | 2019-09-01 |
| 3  | 2019-09-01 |
+----+------------+

व्याख्या:

  • सबक्वेरी: SELECT MAX(ExpiryDate) FROM DemoTable टेबल में अधिकतम (नवीनतम) तारीख ढूंढती है: 2019-09-01
  • मुख्य क्वेरी: उन सभी पंक्तियों को चुनती है जिनकी ExpiryDate इस अधिकतम तारीख के बराबर है
  • दोनों पंक्तियाँ (Id 2 और 3) दिखाई जाती हैं क्योंकि दोनों की तारीख 2019-09-01 है

वैकल्पिक तरीके:

-- तरीका 1: ORDER BY LIMIT (सबसे नवीनतम 1 रिकॉर्ड के लिए)
SELECT * FROM DemoTable ORDER BY ExpiryDate DESC LIMIT 1;

-- तरीका 2: JOIN के साथ (बड़े टेबल्स के लिए अधिक कुशल)
SELECT d.* FROM DemoTable d
JOIN (SELECT MAX(ExpiryDate) AS max_date FROM DemoTable) m
ON d.ExpiryDate = m.max_date;

सबक्वेरी तरीका सरल और पठनीय है, लेकिन बहुत बड़े टेबल्स पर JOIN तरीका तेज हो सकता है।

  1. - MySQL में डेटा मानों के साथ तुलना ऑपरेटर कैसे काम करते हैं?

    डेटा के बीच तुलना ऑपरेटर तार्किक तरीके से काम करेंगे। निम्नलिखित उदाहरण में, दो डेटा की तुलना करते समय, MySQL बस दो संख्याओं या स्ट्रिंग की तुलना कर रहा है:mysql> SELECT 20171027 < 20150825;+---------------------------+| 20171027 < 20150825 |+---------------------------+| 0

  1. MySQL से अंतिम 10 रो कैसे चुनें? MySQL से अंतिम 10 रो कैसे चुनें?

    MySQL से अंतिम 10 रो चुनने के लिए, हम SELECT स्टेटमेंट और LIMIT कॉन्सेप्ट के साथ सबक्वेरी का उपयोग कर सकते हैं। निम्न एक उदाहरण है। टेबल बनाना। mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) टेबल में रिकॉर

  1. - MySQL में DATE_ADD से तारीख में वर्ष जोड़ें

    UPDATE और DATE_ADD() से मौजूदा तारीखों में अंतराल जोड़ें मौजूदा तारीख कॉलम में वर्ष (या अन्य अंतराल) जोड़ने के लिए UPDATE के साथ DATE_ADD() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec) mysql> insert into