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

MySQL में टेबल से नवीनतम 3 तारीखें खोजें (डुप्लिकेट के बिना)

DISTINCT, ORDER BY DESC और LIMIT के साथ नवीनतम अनोखी तारीखें

नवीनतम तारीखें खोजने के लिए डेट रिकॉर्ड्स को ORDER BY DESC से सॉर्ट करें। केवल 3 तारीखें चाहिए तो LIMIT 3 उपयोग करें। डुप्लिकेट हटाने के लिए DISTINCT उपयोग करें।

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

mysql> CREATE TABLE DemoTable (
    AdmissionDate DATE
);

रिकॉर्ड्स इन्सर्ट करें (कुछ डुप्लिकेट तारीखों के साथ):

mysql> INSERT INTO DemoTable VALUES ('2019-09-04');
mysql> INSERT INTO DemoTable VALUES ('2019-08-10');
mysql> INSERT INTO DemoTable VALUES ('2019-09-21');
mysql> INSERT INTO DemoTable VALUES ('2019-09-18');
mysql> INSERT INTO DemoTable VALUES ('2019-09-21');  -- डुप्लिकेट
mysql> INSERT INTO DemoTable VALUES ('2019-08-18');
mysql> INSERT INTO DemoTable VALUES ('2019-09-18');  -- डुप्लिकेट
mysql> INSERT INTO DemoTable VALUES ('2019-09-16');

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+---------------+
| AdmissionDate |
+---------------+
| 2019-09-04    |
| 2019-08-10    |
| 2019-09-21    |
| 2019-09-18    |
| 2019-09-21    |
| 2019-08-18    |
| 2019-09-18    |
| 2019-09-16    |
+---------------+

टेबल में नवीनतम 3 अनोखी तारीखें खोजने के लिए क्वेरी:

mysql> SELECT AdmissionDate
    FROM (SELECT DISTINCT AdmissionDate FROM DemoTable) AS tbl
    ORDER BY AdmissionDate DESC
    LIMIT 3;

आउटपुट:

+---------------+
| AdmissionDate |
+---------------+
| 2019-09-21    |
| 2019-09-18    |
| 2019-09-16    |
+---------------+

व्याख्या:

  1. आंतरिक सबक्वेरी: SELECT DISTINCT AdmissionDate FROM DemoTable डुप्लिकेट तारीखों को हटाकर अनोखी तारीखें देता है: 2019-09-04, 2019-08-10, 2019-09-21, 2019-09-18, 2019-08-18, 2019-09-16
  2. ORDER BY AdmissionDate DESC: तारीखों को नवीनतम से सबसे पुराने क्रम में सॉर्ट करता है
  3. LIMIT 3: शीर्ष 3 तारीखें लेता है: 2019-09-21, 2019-09-18, 2019-09-16

वैकल्पिक (MySQL 8.0+):

SELECT DISTINCT AdmissionDate
FROM DemoTable
ORDER BY AdmissionDate DESC
LIMIT 3;

MySQL 8.0+ में DISTINCT के बाद ORDER BY सीधे काम करता है बिना सबक्वेरी के।

  1. - MySQL में ORDER BY DESC LIMIT OFFSET से दूसरा अधिकतम मान ढूंढें

    MySQL में ORDER BY ... DESC LIMIT 1 OFFSET 1 का उपयोग करके दूसरा सबसे बड़ा मान (second maximum) प्राप्त कर सकते हैं। सिंटैक्स SELECT * FROM टेबल_नाम ORDER BY कॉलम_नाम DESC LIMIT 1 OFFSET 1; उदाहरण 1. टेबल बनाएं CREATE TABLE DemoTable (Value INT); 2. डेटा डालें INSERT INTO DemoTable VALUES(1),

  1. - MySQL में DATE_SUB और BETWEEN से अंतिम N दिन पहले के रिकॉर्ड ढूंढें

    MySQL में DATE_SUB() और BETWEEN का उपयोग करके किसी दिनांक कॉलम में अंतिम N दिनों के रिकॉर्ड क्वेरी कर सकते हैं। उदाहरण: पिछले 3 दिन पहले के पोस्ट (आधार दिनांक: 2019-10-20) 1. टेबल बनाएं CREATE TABLE DemoTable1582 (PostedDate DATETIME); 2. डेटा डालें INSERT INTO DemoTable1582 VALUES(2019-10-25 0

  1. - MySQL क्वेरी डुप्लिकेट टुपल्स खोजने और गिनती प्रदर्शित करने के लिए?

    डुप्लिकेट टुपल्स खोजने के लिए GROUP BY HAVING क्लॉज का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.80 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into De