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

MySQL SELECT स्टेटमेंट में IN क्लॉज के मानों के क्रम के अनुसार सॉर्ट कैसे करें?

FIELD() फ़ंक्शन के साथ कस्टम ऑर्डर

MySQL में FIELD(str, val1, val2, ...) फ़ंक्शन str की सूची में स्थिति लौटाता है। इसे ORDER BY के साथ उपयोग करके IN क्लॉज के मानों के क्रम में सॉर्ट कर सकते हैं।

सिंटैक्स

SELECT * FROM yourTableName
WHERE yourColumnName IN (val1, val2, val3, ...)
ORDER BY FIELD(yourColumnName, val1, val2, val3, ...);

उदाहरण

mysql> CREATE TABLE SelectInDemo (StudentId INT, StudentName VARCHAR(100), StudentAge INT);
mysql> INSERT INTO SelectInDemo VALUES
    -> (1,'Mike',23), (10,'Bob',21), (11,'Carol',30), (15,'Sam',24),
    -> (20,'John',26), (101,'David',27), (96,'Justin',23);

कस्टम ऑर्डर 1, 96, 101, 10, 15, 11, 20:

mysql> SELECT * FROM SelectInDemo
    -> WHERE StudentId IN (1,96,101,10,15,11,20)
    -> ORDER BY FIELD(StudentId, 1,96,101,10,15,11,20);
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
| 1         | Mike        | 23         |
| 96        | Justin      | 23         |
| 101       | David       | 27         |
| 10        | Bob         | 21         |
| 15        | Sam         | 24         |
| 11        | Carol       | 30         |
| 20        | John        | 26         |
+-----------+-------------+------------+

नोट: FIELD() में सूचीबद्ध मान जो IN क्लॉज में नहीं हैं, उन्हें 0 माना जाता है और वे अंत में आते हैं (यदि वे WHERE से मेल खाते हैं)।

  1. - MySQL SELECT स्टेटमेंट में ROW_NUMBER() का उपयोग करके रो इंडेक्स (रैंक) कैसे जनरेट करें

    ROW_NUMBER() विंडो फंक्शन के साथ रो इंडेक्स जनरेट करना MySQL 8.0+ में रो इंडेक्स या रैंक जनरेट करने के लिए ROW_NUMBER() विंडो फंक्शन का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( Name VARCHAR(40) ); रिकॉर्ड्स इन्सर्ट करें: mysql> INSERT INTO DemoTable VALUES (C

  1. - MySQL में शर्त के साथ ORDER BY और SELECT कैसे करें?

    कंडीशनल ORDER BY: जीरो वैल्यू अंत में किसी कॉलम को सॉर्ट करते समय खास मान (जैसे 0) को अंत में रखने और बाकी को नॉर्मल ऑर्डर में रखने के लिए बूलियन एक्सप्रेशन का उपयोग करें। सिंटैक्स SELECT * FROM yourTableName ORDER BY yourColumnName = 0, yourColumnName; टेबल बनाना और डेटा इन्सर्ट करना CREATE TABL

  1. - MySQL UNION SELECT और IN क्लॉज एक ही क्वेरी में

    UNION और IN क्लॉज को संयोजित करना पहले टेबल बनाएं: create table DemoTable1 ( StudentId int, StudentName varchar(20) ); Query OK, 0 rows affected (1.24 sec) रिकॉर्ड डालें: insert into DemoTable1 values(210,Adam); Query OK, 1 row affected (0.11 sec) सभी रिकॉर्ड देखें: select * from DemoTable1; आउटप