इसके लिए आप CASE स्टेटमेंट का उपयोग कर सकते हैं। सॉर्ट करने के लिए, ORDER BY क्लॉज का उपयोग करें। आइए पहले एक टेबल बनाएं -
mysql> तालिका बनाएं DemoTable -> ( -> ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> ClientName varchar(20) -> );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.54 सेकंड)
इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें। कुछ रिकॉर्ड में कुछ अंतिम स्ट्रिंग होती है जैसे -D, आदि -
mysql> डेमोटेबल (क्लाइंटनाम) मान ('माइक') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.11 सेकंड) mysql> डेमोटेबल (क्लाइंटनाम) मान ('जॉन') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित ( 0.22 सेकंड)mysql> डेमोटेबल (क्लाइंटनाम) मान ('जॉन-डी') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड) mysql> डेमोटेबल (क्लाइंटनाम) मानों ('जॉन-स्मिथ') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड) mysql> डेमोटेबल (क्लाइंटनाम) मान ('माइक-स्मिथ') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड) mysql> डेमोटेबल (क्लाइंटनाम) मानों में डालें ('माइक-डी');क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड)
चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें -
mysql> डेमोटेबल से *चुनें;
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
<पूर्व>+----------+---------------+| क्लाइंट आईडी | ClientName |+----------+---------------+| 1 | माइक || 2 | जॉन || 3 | जॉन-डी || 4 | जॉन-स्मिथ || 5 | माइक-स्मिथ || 6 | माइक-डी |+----------+---------------+6 पंक्तियों में सेट (0.00 सेकंड)यहाँ कुछ अंतिम स्ट्रिंग वर्ण के आधार पर छाँटने की क्वेरी है -
mysql> सेलेक्ट करें -> केस -> जब राइट (क्लाइंटनाम, लेंथ (क्लाइंटनाम) -इंस्ट्र (क्लाइंटनाम, '-')) =`क्लाइंटनाम` फिर '' -> और राइट (`क्लाइंटनाम`, लेंथ (`क्लाइंटनाम) `)-INSTR(`ClientName`,'-')) -> अंत में `last`, -> `ClientName` -> from -> DemoTable -> ORDER BY -> `last`,`ClientName`;
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
<पूर्व>+----------+---------------+| अंतिम | ClientName |+----------+---------------+| | जॉन || | माइक || डी | जॉन-डी || डी | माइक-डी || स्मिथ | जॉन-स्मिथ || स्मिथ | माइक-स्मिथ |+----------+------------+6 पंक्तियों में सेट (0.00 सेकंड)