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

MySQL में ORDER BY FIELD() का उपयोग करके IN क्लॉज के क्रम में परिणाम प्राप्त करना

MySQL में ORDER BY FIELD() के साथ IN क्लॉज के क्रम को बनाए रखना

डिफ़ॉल्ट रूप से IN() क्लॉज परिणामों को तालिका के प्राकृतिक क्रम में लौटाता है। ORDER BY FIELD() का उपयोग करके परिणामों को IN सूची के क्रम में क्रमबद्ध किया जा सकता है।

व्यावहारिक उदाहरण

तालिका बनाना

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(100)
);

रिकॉर्ड डालना

mysql> INSERT INTO DemoTable(FirstName) VALUES('Chris');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Robert');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Mike');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Sam');
mysql> INSERT INTO DemoTable(FirstName) VALUES('Carol');
mysql> INSERT INTO DemoTable(FirstName) VALUES('David');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | Chris     |
| 2  | Robert    |
| 3  | Mike      |
| 4  | Sam       |
| 5  | Carol     |
| 6  | David     |
+----+-----------+

IN सूची के क्रम (4,5,6) में परिणाम प्राप्त करने के लिए क्वेरी

mysql> SELECT FirstName FROM DemoTable 
WHERE Id IN(4,5,6) 
ORDER BY FIELD(Id, 4, 5, 6);

आउटपुट:

+-----------+
| FirstName |
+-----------+
| Sam       |
| Carol     |
| David     |
+-----------+

FIELD() फ़ंक्शन व्याख्या

  • FIELD(str, str1, str2, ...) - str की सूची में स्थिति लौटाता है (1-आधारित)
  • नहीं मिलने पर 0 लौटाता है
  • ORDER BY FIELD(Id, 4, 5, 6) - Id=4 को पहले, फिर 5, फिर 6 क्रमबद्ध करता है

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


            
  1. - MySQL में समय अंतर निकालें: NOW() और INTERVAL के साथ

    MySQL में NOW() और INTERVAL का उपयोग करके वर्तमान समय से निर्दिष्ट अवधि पहले/बाद के रिकॉर्ड ढूंढ सकते हैं। उदाहरण: पिछले 5 घंटे में आगमन समय 1. टेबल बनाएं CREATE TABLE DemoTable1570 (ArrivalTime DATETIME); 2. डेटा डालें INSERT INTO DemoTable1570 VALUES(2019-10-15 16:10:00); 3. वर्तमान समय मान

  1. - MySQL में GROUP BY में MIN/MAX सबक्वेरी से समूह प्रतिनिधि पंक्ति चुनें

    MySQL में GROUP BY के साथ प्रत्येक समूह से एक विशिष्ट पंक्ति (जैसे न्यूनतम ID वाली) चुनने के लिए सबक्वेरी में MIN() या MAX() का उपयोग करें। उदाहरण: प्रत्येक अंक समूह से न्यूनतम StudentId वाली पंक्ति 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO DemoTable1572 VALUES(4, 79, Bob); -- समान अंक 79 3.

  1. - MySQL में SELECT क्वेरी परिणाम को क्रमबद्ध करना (ORDER BY)

    टेबल से डेटा चुनते समय पंक्तियाँ टेबल में मौजूद क्रम में आती हैं। विशिष्ट क्रम में प्राप्त करने के लिए ORDER BY उपयोग करें। सिंटैक्स आरोही क्रम (डिफ़ॉल्ट): SELECT * FROM table_name ORDER BY column_name अवरोही क्रम: SELECT * FROM table_name ORDER BY column_name DESC Python में MySQL से क्रमबद्ध डेट