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

MySQL में एकल क्वेरी का उपयोग करके पिछला और अगला रिकॉर्ड कैसे खोजें?

<घंटा/>

आप MySQL में पिछला और अगला रिकॉर्ड प्राप्त करने के लिए UNION का उपयोग कर सकते हैं।

वाक्य रचना इस प्रकार है

(select *from yourTableName WHERE yourIdColumnName > yourValue ORDER BY
yourIdColumnName ASC LIMIT 1)
UNION
(select *from yourTableName WHERE yourIdColumnName < yourValue ORDER BY
yourIdColumnName DESC LIMIT 1);

अवधारणा को समझने के लिए, आइए एक तालिका बनाएं। तालिका बनाने की क्वेरी इस प्रकार है

mysql> create table previousAndNextRecordDemo
   - > (
   - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   - > Name varchar(30)
   - > );
Query OK, 0 rows affected (1.04 sec)

इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें।

क्वेरी इस प्रकार है

mysql> insert into previousAndNextRecordDemo(Name) values('John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into previousAndNextRecordDemo(Name) values('Sam');
Query OK, 1 row affected (0.15 sec)
mysql> insert into previousAndNextRecordDemo(Name) values('Carol');
Query OK, 1 row affected (0.14 sec)
mysql> insert into previousAndNextRecordDemo(Name) values('Bob');
Query OK, 1 row affected (0.17 sec)
mysql> insert into previousAndNextRecordDemo(Name) values('Larry');
Query OK, 1 row affected (0.20 sec)
mysql> insert into previousAndNextRecordDemo(Name) values('David');
Query OK, 1 row affected (0.14 sec)
mysql> insert into previousAndNextRecordDemo(Name) values('Ramit');
Query OK, 1 row affected (0.12 sec)
mysql> insert into previousAndNextRecordDemo(Name) values('Maxwell');
Query OK, 1 row affected (0.15 sec)
mysql> insert into previousAndNextRecordDemo(Name) values('Mike');
Query OK, 1 row affected (0.14 sec)
mysql> insert into previousAndNextRecordDemo(Name) values('Robert');
Query OK, 1 row affected (0.19 sec)
mysql> insert into previousAndNextRecordDemo(Name) values('Chris');
Query OK, 1 row affected (0.10 sec)
mysql> insert into previousAndNextRecordDemo(Name) values('James');
Query OK, 1 row affected (0.16 sec)
mysql> insert into previousAndNextRecordDemo(Name) values('Jace');
Query OK, 1 row affected (0.15 sec)

चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें।

क्वेरी इस प्रकार है

mysql> select *from previousAndNextRecordDemo;

निम्न आउटपुट है

+----+---------+
| Id | Name    |
+----+---------+
|  1 | John    |
|  2 | Sam     |
|  3 | Carol   |
|  4 | Bob     |
|  5 | Larry   |
|  6 | David   |
|  7 | Ramit   |
|  8 | Maxwell |
|  9 | Mike    |
| 10 | Robert  |
| 11 | Chris   |
| 12 | James   |
| 13 | Jace    |
+----+---------+
13 rows in set (0.00 sec)

यहाँ UNION के साथ एकल क्वेरी का उपयोग करके पिछला और अगला रिकॉर्ड प्राप्त करने की क्वेरी है

mysql> (select *from previousAndNextRecordDemo WHERE Id > 8 ORDER BY Id ASC LIMIT 1)
   - > UNION
   - > (select *from previousAndNextRecordDemo WHERE Id < 8 ORDER BY Id DESC LIMIT 1);

निम्न आउटपुट है

+----+-------+
| Id | Name  |
+----+-------+
|  9 | Mike  |
|  7 | Ramit |
+----+-------+
2 rows in set (0.03 sec)

  1. दो तालिकाओं के बीच उच्चतम और निम्नतम खोजने के लिए एक एकल MySQL क्वेरी?

    दो तालिकाओं में से उच्चतम और निम्नतम खोजने के लिए, MAX() और MIN() का उपयोग करें। चूंकि परिणाम दो तालिकाओं से प्रदर्शित किए जाने हैं, इसलिए आपको UNION का उपयोग करने की आवश्यकता है। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1(UniqueId int NOT NULL AUTO_INCREMENT PRIMARY KEY, Score1 int);क्वेरी ओके

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

    डुप्लिकेट टुपल्स खोजने के लिए, ग्रुप बाय हैविंग क्लॉज का उपयोग करें। आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.80 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल वैल्यू में डालें (100, क्रिस); क्वेरी ओके, 1 पंक्ति प्रभावित (0.10 सेकंड) चयन कथन का उपयो

  1. AND &OR ऑपरेटर के साथ एकल MySQL क्वेरी का उपयोग करके एक विशिष्ट रिकॉर्ड प्राप्त करें

    आइए पहले एक टेबल बनाएं - );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (1.20 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable2015 मानों में डालें (4, रॉबर्ट, US);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें - DemoTable2