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)

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

क्वेरी निम्नलिखिक है:

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)

SELECT स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें।

क्वेरी निम्नलिखिक है:

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 में दो टेबल से एक ही क्वेरी में उच्चतम और निम्नतम मान कैसे खोजें?

    MySQL में UNION और एग्रीगेट फंक्शन: दो टेबल से संयुक्त मैक्स/मिन दो टेबल के कॉलम मानों को संयोजित करके समग्र अधिकतम और न्यूनतम मान खोजने के लिए UNION के साथ MAX() और MIN() का उपयोग करें। उदाहरण: दो टेबल के स्कोर से उच्चतम और निम्नतम पहली टेबल: CREATE TABLE DemoTable1 ( UniqueId INT NOT NULL AUT

  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

  1. - MySQL में AND और OR ऑपरेटर के साथ विशिष्ट रिकॉर्ड कैसे प्राप्त करें

    उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2015 VALUES (4, Robert, US); क्वेरी StudentName=David OR (StudentCountryName=UK AND StudentId=3): WHERE StudentName = David OR StudentCountryName = UK AND StudentId = 3; परिणाम +-----------+-------------+--------------------+ | Stu