Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL - कॉलम में अल्पविराम से अलग की गई स्ट्रिंग को सॉर्ट करें

यह संभव है, लेकिन वास्तव में एक अच्छा विचार नहीं है।

एक उदाहरण के रूप में, आप संख्याओं की एक श्रृंखला उत्पन्न करके और प्रत्येक तत्व को प्राप्त करने के लिए SUBSTRING_INDEX के साथ उपयोग करके अल्पविराम से अलग की गई सूची को विभाजित कर सकते हैं। हालांकि संख्याओं की सीमा उतनी ही बड़ी होनी चाहिए जितनी कि सीमांकित मानों की अधिकतम संख्या।

फिर आप सही क्रम में सूची में शामिल होने के लिए GROUP_CONCAT का उपयोग कर सकते हैं। ध्यान दें कि क्रम इस बात पर निर्भर करेगा कि आपने विभाजित मानों को संख्याओं / पूर्णांकों के रूप में डाला है या उन्हें स्ट्रिंग्स के रूप में छोड़ दिया है।

SELECT id, title, GROUP_CONCAT(aNumber ORDER BY aNumber)
FROM
(
    SELECT id, title, CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(numbers, ',', tens.acnt * 10 + units.acnt + 1), ',', -1) AS UNSIGNED) AS aNumber
    FROM some_table
    CROSS JOIN
    (SELECT 0 AS acnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) units
    CROSS JOIN
    (SELECT 0 AS acnt UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) tens
    WHERE LENGTH(numbers) - LENGTH(REPLACE(numbers, ',', '')) >= tens.acnt * 10 + units.acnt
) sub0
GROUP BY id, title;

यहाँ SQL fiddle पर प्रदर्शित किया गया है (यदि SQL fiddle काम करने का निर्णय लेता है):-

http://www.sqlfiddle.com/#!9/c9703ee/4

पहला चयन मानों को संख्यात्मक रूप से क्रमबद्ध करने के लिए पूर्णांक के रूप में कास्टिंग कर रहा है, दूसरा उन्हें कास्टिंग नहीं कर रहा है बल्कि उन्हें स्ट्रिंग के रूप में छोड़ रहा है, इसलिए सॉर्ट ऑर्डर अलग है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CSV डेटा फ़ाइलों से MySQL बल्क इंसर्ट

  2. चेतावनी:mysqli_num_rows() बिल्कुल 1 पैरामीटर की अपेक्षा करता है, 2 दिए गए | mysql |mysqli

  3. Google क्लाउड SQL (GAE) पायथन ऐप में db कनेक्शन को प्रबंधित करने का एक अच्छा तरीका क्या है?

  4. एसक्यूएल रिटर्न 1,0 नए वेरिएबल में केस के आधार पर जब स्टेटमेंट कई अन्य वेरिएबल का जिक्र करता है

  5. mysql कस्टम सॉर्ट