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

MySQL में IN() और FIELD() से सेट क्रम में SELECT करें

IN() और FIELD() के संयोजन से कस्टम क्रम में परिणाम प्राप्त करना

जब आपको विशिष्ट मानों के लिए पंक्तियां चुननी हों और उन्हें एक विशेष क्रम में दिखाना हो, तो WHERE ... IN(...) के साथ ORDER BY FIELD(...) का उपयोग करें।

टेबल और डेटा

mysql> CREATE TABLE DemoTable(
    StudentId VARCHAR(10),
    StudentName VARCHAR(20)
);
Query OK, 0 rows affected (4.11 sec)
mysql> INSERT INTO DemoTable VALUES('10001','Adam');
Query OK, 1 row affected (0.52 sec)
mysql> INSERT INTO DemoTable VALUES('1010','Chris');
Query OK, 1 row affected (0.72 sec)
mysql> INSERT INTO DemoTable VALUES('1020','Bob');
Query OK, 1 row affected (0.34 sec)
mysql> INSERT INTO DemoTable VALUES('1030','Carol');
Query OK, 1 row affected (0.47 sec)
mysql> INSERT INTO DemoTable VALUES('1040','Sam');
Query OK, 1 row affected (0.29 sec)

सभी रिकॉर्ड

mysql> SELECT * FROM DemoTable;
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 10001     | Adam        |
| 1010      | Chris       |
| 1020      | Bob         |
| 1030      | Carol       |
| 1040      | Sam         |
+-----------+-------------+
5 rows in set (0.00 sec)

कस्टम क्रम में चुनने की क्वेरी

mysql> SELECT * FROM DemoTable 
    WHERE StudentId IN('1040','1010','1020','1030','10001')
    ORDER BY FIELD(StudentId,'1040','1010','1020','1030','10001');

परिणाम:

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1040      | Sam         |
| 1010      | Chris       |
| 1020      | Bob         |
| 1030      | Carol       |
| 10001     | Adam        |
+-----------+-------------+
5 rows in set (0.02 sec)

व्याख्या: IN() केवल सूचीबद्ध मानों वाली पंक्तियां चुनता है। FIELD() प्रत्येक मान की सूची में स्थिति देता है (1040→1, 1010→2, आदि)। ORDER BY उस स्थिति के अनुसार क्रमबद्ध करता है। दोनों सूचियों में समान क्रम होना चाहिए।

  1. - MySQL में INSERT ... SELECT क्वेरी का उपयोग कैसे करें?

    MySQL में INSERT ... SELECT स्टेटमेंट एक ही क्वेरी में एक तालिका से दूसरी तालिका में डेटा कॉपी करने या मानों की गणना करके डालने की अनुमति देता है। सिंटैक्स INSERT INTO target_table (col1, col2, col3, ...) SELECT col1, col2, col3, ... FROM source_table WHERE condition; उदाहरण: मानों को सीधे चुनकर ड

  1. - MySQL SELECT परिणाम को कस्टम वेरिएबल में कैसे स्टोर करें

    उदाहरण टेबल बनाएं: INSERT INTO DemoTable2013 VALUES (Chris), (David), (Mike), (Sam), (Bob); वेरिएबल में काउंट स्टोर करें SET @query := (SELECT COUNT(*) FROM DemoTable2013); वेरिएबल का उपयोग करके अंतिम रिकॉर्ड प्राप्त करें WHERE (@query := @query - 1) = 0; परिणाम +------+ | Name | +------+ | Bo

  1. - MySQL में ENUM के साथ सेट किए गए ACTIVE स्टेटस वाले रिकॉर्ड चुनें

    उदाहरण ENUM कॉलम के साथ टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2037 VALUES (99, Active), (99, Inactive), (100, Inactive), (99, Active), (100, Inactive), (101, Active), (101, Active); क्वेरी केवल ACTIVE स्टेटस वाले अद्वितीय StudentId प्राप्त करें: WHERE status = Active GROUP BY StudentI