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

MySQL FIELD() फंक्शन: कस्टम ऑर्डर में सॉर्ट करने के लिए उपयोग करें

MySQL FIELD() फंक्शन से कस्टम क्रम (Custom Sort Order) में रिजल्ट सॉर्ट करें

FIELD() फंक्शन एक मान की सूची में दिए गए मान की स्थिति (इंडेक्स, 1-आधारित) लौटाता है। इसका मुख्य उपयोग ORDER BY में कस्टम सॉर्टिंग के लिए है।

सिंटैक्स:

SELECT * FROM yourTableName 
ORDER BY FIELD(yourColumnName, value1, value2, value3, ...) DESC;

कैसे काम करता है:

  • FIELD(StudentId, 101, 401, 1001, 1010) लौटाता है:
  • अगर StudentId=101 → 1
  • अगर StudentId=401 → 2
  • अगर StudentId=1001 → 3
  • अगर StudentId=1010 → 4
  • अगर सूची में नहीं → 0

DESC से उच्च इंडेक्स (यानी सूची में बाद के मान) पहले आते हैं।

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

1. टेबल बनाएं:

mysql> CREATE TABLE OrderByDemo (StudentId INT); 
Query OK, 0 rows affected (0.71 sec)

2. डेटा डालें:

mysql> INSERT INTO OrderByDemo VALUES(101);
mysql> INSERT INTO OrderByDemo VALUES(1010);
mysql> INSERT INTO OrderByDemo VALUES(1001);
mysql> INSERT INTO OrderByDemo VALUES(401);

3. मूल क्रम:

+-----------+ 
| StudentId | 
+-----------+ 
| 101       | 
| 1010      | 
| 1001      | 
| 401       | 
+-----------+ 
4 rows in set (0.00 sec)

4. कस्टम ऑर्डर में सॉर्ट (DESC):

mysql> SELECT * FROM OrderByDemo 
    -> ORDER BY FIELD(StudentId, 101, 401, 1001, 1010) DESC;
+-----------+ 
| StudentId | 
+-----------+ 
| 1010      | 
| 1001      | 
| 401       | 
| 101       | 
+-----------+ 
4 rows in set (0.00 sec)

व्यावहारिक उपयोग केस:

स्थिति (Status) कॉलम को तार्किक क्रम में सॉर्ट करें:

SELECT * FROM orders 
ORDER BY FIELD(status, 'pending', 'processing', 'shipped', 'delivered', 'cancelled');

प्राथमिकता (Priority) क्रम:

SELECT * FROM tasks 
ORDER BY FIELD(priority, 'critical', 'high', 'medium', 'low');

सूची में न होने वाले मान अंत में:

SELECT * FROM products 
ORDER BY FIELD(category, 'electronics', 'clothing', 'books') DESC, category;

नोट:

  • FIELD() केस-इनसेंसिटिव तुलना करता है (डिफ़ॉल्ट कोलेशन के अनुसार)
  • सूची में न होने वाले मान के लिए 0 लौटाता है — वे ASC में पहले, DESC में अंत में आएंगे
  • बड़े डेटासेट पर प्रदर्शन: इंडेक्स उपयोग नहीं कर सकता, फाइलसॉर्ट ट्रिगर कर सकता है
  1. - MySQL में CONCAT() से स्ट्रिंग कॉलम को अपडेट करके जोड़ना

    MySQL में किसी मौजूदा स्ट्रिंग कॉलम में नया टेक्स्ट जोड़कर (कॉन्कैटेनेट करके) अपडेट करने के लिए CONCAT() फ़ंक्शन का उपयोग UPDATE स्टेटमेंट में किया जाता है। उदाहरण के लिए टेबल बनाना mysql> CREATE TABLE DemoTable ( SequenceId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentId VARCHAR(100)

  1. - MySQL में एक ही फ़ील्ड पर कस्टम सॉर्ट ऑर्डर लागू करें

    इसके लिए ORDER BY IF() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable801 ( Score int ); Query OK, 0 rows affected (0.69 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable801 values(30); Query OK, 1 row affected (0.19 sec) m

  1. - MySQL में फ़ील्ड मान से कॉमा की गिनती करना

    LENGTH और REPLACE से वर्ण गिनती किसी वर्ण (जैसे कॉमा) की घटनाएँ गिनने के लिए: कुल लंबाई - उस वर्ण को हटाने के बाद की लंबाई। सिंटैक्स SELECT LENGTH(col) - LENGTH(REPLACE(col, ,, )) AS comma_count FROM table; तालिका और डेटा INSERT INTO DemoTable1510 VALUES(20,35), (45,67,89), (90,97,101,190); कॉ