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

MySQL में उन्नत सॉर्टिंग: J से शुरू होने वाले नाम अंत में दिखाएं

ORDER BY LIKE पैटर्न के साथ सशर्त सॉर्टिंग

वर्णानुक्रम क्रम में होने के बावजूद, किसी विशिष्ट पैटर्न (जैसे 'J' से शुरू) वाले मानों को अंत में रखने के लिए ORDER BY column LIKE 'pattern', column का उपयोग करें।

टेबल और डेटा

mysql> CREATE TABLE DemoTable (
    Name VARCHAR(100)
);
Query OK, 0 rows affected (0.60 sec)
mysql> INSERT INTO DemoTable VALUES('John');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES('Adam');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES('Chris');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES('Jace');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES('David');
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO DemoTable VALUES('Sam');
Query OK, 1 row affected (0.20 sec)

सभी रिकॉर्ड

mysql> SELECT * FROM DemoTable;
+-------+
| Name  |
+-------+
| John  |
| Adam  |
| Chris |
| Jace  |
| David |
| Sam   |
+-------+
6 rows in set (0.00 sec)

'J' से शुरू होने वाले नामों को अंत में रखना

mysql> SELECT * FROM DemoTable ORDER BY Name LIKE 'J%', Name;

परिणाम:

+-------+
| Name  |
+-------+
| Adam  |
| Chris |
| David |
| Sam   |
| Jace  |
| John  |
+-------+
6 rows in set (0.00 sec)

तर्क: Name LIKE 'J%' 'J' से शुरू होने वालों के लिए TRUE (1), अन्य के लिए FALSE (0) देता है। ORDER BY 0 पहले, फिर 1 क्रमबद्ध करता है। द्वितीयक क्रम Name (वर्णानुक्रम) है।

नोट: पैटर्न '%J%' (कहीं भी J) के बजाय 'J%' (शुरुआत में J) अधिक सटीक है। मूल लेख में '%J%' था जो 'Jace' और 'John' दोनों से मेल खाता, लेकिन 'Major' जैसे नाम भी मेल खाते।

  1. - MySQL में ORDER BY ASC के साथ NULL मानों को नीचे कैसे दिखाएं?

    MySQL में ORDER BY ASC डिफ़ॉल्ट रूप से NULL मानों को पहले रखता है। NULL मानों को अंत में (नीचे) रखते हुए आरोही क्रम बनाए रखने के लिए, CASE स्टेटमेंट या IS NULL चेक के साथ कस्टम सॉर्टिंग लागू करें। उदाहरण: NULL और खाली स्ट्रिंग को नीचे रखें डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1937 (Na

  1. - MySQL में IN क्लॉज और ORDER BY FIELD से निर्दिष्ट क्रम में पंक्तियां चुनें

    IN() और FIELD() से कस्टम क्रम में परिणाम प्राप्त करें IN() क्लॉज से विशिष्ट मान चुनें और FIELD() फ़ंक्शन से कस्टम क्रम में सॉर्ट करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1986 ( Number int ); Query OK, 0 rows affected (0.00 sec) mysql> insert into DemoTable1986 values(50); .

  1. - MySQL REGEXP: केवल स्ट्रिंग या स्ट्रिंग+नंबर वाले रिकॉर्ड दिखाएँ, केवल नंबर वाले नहीं

    REGEXP पैटर्न कम से कम एक अक्षर (a-z या A-Z) वाले रिकॉर्ड के लिए: select yourColumnName from yourTableName where yourColumnName REGEXP [a-zA-Z]; उदाहरण insert into demo41 values(John Smith34), (John Smith), (9234John Smith), (john smith), (98775); क्वेरी और परिणाम select name from demo41 where