MySQL में LIKE पैटर्न और ORDER BY के साथ विशिष्ट पैटर्न वाले नामों को प्राथमिकता देना
ORDER BY में बूलियन एक्सप्रेशन का उपयोग करके विशिष्ट पैटर्न (जैसे "John_") से शुरू होने वाले नामों को परिणामों में पहले रखा जा सकता है।
व्यावहारिक उदाहरण
तालिका बनाना
mysql> CREATE TABLE DemoTable (
Name VARCHAR(100)
);
रिकॉर्ड डालना (अंडरस्कोर वाले नाम सहित)
mysql> INSERT INTO DemoTable VALUES('John_Smith');
mysql> INSERT INTO DemoTable VALUES('Chris Brown');
mysql> INSERT INTO DemoTable VALUES('John_Doe');
mysql> INSERT INTO DemoTable VALUES('David Miller');
mysql> INSERT INTO DemoTable VALUES('Carol Taylor');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+--------------+ | Name | +--------------+ | John_Smith | | Chris Brown | | John_Doe | | David Miller | | Carol Taylor | +--------------+
"John_" से शुरू होने वाले नामों को पहले रखने के लिए क्वेरी
mysql> SELECT * FROM DemoTable ORDER BY (Name LIKE 'John_%') DESC, RAND();
आउटपुट:
+--------------+ | Name | +--------------+ | John_Doe | | John_Smith | | Carol Taylor | | David Miller | | Chris Brown |
व्याख्या
Name LIKE 'John_%'- "John_" से शुरू होने वाले नामों के लिए 1 (सत्य), अन्य के लिए 0DESC- 1 को पहले रखता है (मिलान करने वाले नाम पहले)RAND()- प्रत्येक समूह के भीतर रैंडम क्रम (निष्पक्षता के लिए)
अन्य पैटर्न मिलान उदाहरण