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

MySQL में ORDER BY FIELD() से एकाधिक ID के अनुसार क्रमबद्ध करें

FIELD() फंक्शन के साथ कस्टम क्रम में सॉर्टिंग

जब आपको किसी कॉलम के मानों को एक विशिष्ट, गैर-मानक क्रम में व्यवस्थित करना हो, तो ORDER BY FIELD(column, value1, value2, ...) का उपयोग करें।

टेबल और डेटा

mysql> CREATE TABLE DemoTable(
    ClientId VARCHAR(40),
    ClientName VARCHAR(40)
);
Query OK, 0 rows affected (0.55 sec)
mysql> INSERT INTO DemoTable VALUES('987_John','John');
Query OK, 1 row affected (0.33 sec)
mysql> INSERT INTO DemoTable VALUES('1000_Sam','Sam');
Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO DemoTable VALUES('777_Carol','Carol');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES('2000_Bob','Bob');
Query OK, 1 row affected (0.20 sec)

सभी रिकॉर्ड (डिफ़ॉल्ट क्रम)

mysql> SELECT * FROM DemoTable;
+-----------+------------+
| ClientId  | ClientName |
+-----------+------------+
| 987_John  | John       |
| 1000_Sam  | Sam        |
| 777_Carol | Carol      |
| 2000_Bob  | Bob        |
+-----------+------------+
4 rows in set (0.00 sec)

कस्टम क्रम में क्वेरी

mysql> SELECT * FROM DemoTable 
    ORDER BY FIELD(ClientId, '1000_Sam', '2000_Bob', '777_Carol', '987_John');

परिणाम:

+-----------+------------+
| ClientId  | ClientName |
+-----------+------------+
| 1000_Sam  | Sam        |
| 2000_Bob  | Bob        |
| 777_Carol | Carol      |
| 987_John  | John       |
+-----------+------------+
4 rows in set (0.04 sec)

व्याख्या: FIELD() प्रत्येक मान की स्थिति सूची में लौटाता है। जो मान सूची में नहीं हैं, उनके लिए 0 लौटाता है (पहले आते हैं)। यह प्राथमिकता-आधारित सॉर्टिंग के लिए आदर्श है।

  1. - MySQL में एक ही क्वेरी में एकाधिक रिकॉर्ड कैसे अपडेट करें?

    MySQL में UPDATE स्टेटमेंट में WHERE क्लॉज का उपयोग करके एक ही क्वेरी में एकाधिक कॉलम अपडेट किए जा सकते हैं, लेकिन एकाधिक पंक्तियों को अलग-अलग मानों से अपडेट करने के लिए CASE या एकाधिक क्वेरी की आवश्यकता होती है। उदाहरण: एक पंक्ति, एकाधिक कॉलम तालिका बनाएं: mysql> CREATE TABLE DemoTable ( -&

  1. - MySQL में एकल पैरामीटर में एकाधिक ID पास करना?

    एकल पैरामीटर में एकाधिक ID पास करने के लिए FIND_IN_SET() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1817 ( EmployeeName varchar(20), CountryName varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql&

  1. - MySQL में एकल INSERT से एकाधिक रिकॉर्ड तेजी से डालें

    बल्क इंसर्ट सिंटैक्स से प्रदर्शन सुधारें एक ही INSERT स्टेटमेंट में कई मान सेट अल्पविराम से अलग करके डालें। सिंटैक्स: insert into yourTableName values(val1,val2,...),(val1,val2,...),...; उदाहरण: mysql> create table DemoTable2007 ( Amount1 int, Amount2 int, Amount3 int ); Query OK, 0 rows affected