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

MySQL में सॉर्टिंग/ऑर्डर करना

आप उन्हें उनके घटक भागों में विभाजित कर सकते हैं जैसे:

SELECT REPLACE(SUBSTRING(SUBSTRING_INDEX(prog_id, '.', 1),
       LENGTH(SUBSTRING_INDEX(prog_id, '.', 1 -1)) + 1),
       '.', '') AS id1,
       REPLACE(SUBSTRING(SUBSTRING_INDEX(prog_id, '.', 2),
       LENGTH(SUBSTRING_INDEX(prog_id, '.', 2 -1)) + 1),
       '.', '') AS id2,
       REPLACE(SUBSTRING(SUBSTRING_INDEX(prog_id, '.', 3),
       LENGTH(SUBSTRING_INDEX(prog_id, '.', 3 -1)) + 1),
       '.', '') AS id3
FROM programs
ORDER BY CAST(id1 AS INT(4)), CAST(id2 AS INT(4)), CAST(id3 AS INT(4))

सबसे अच्छा तरीका यह होगा कि अतिरिक्त फ़ील्ड बनाएं जैसे yoda2k कहते हैं, लेकिन अगर आपके पास वह एक्सेस नहीं है तो आप उपरोक्त का उपयोग कर सकते हैं।

आप इसे एक फंक्शन में इनकैप्सुलेट कर सकते हैं जैसे:

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');

फिर करें:

SELECT SPLIT_STR(prog_id, '.', 1) AS id1,
   SPLIT_STR(prog_id, '.', 2) AS id2,
   SPLIT_STR(prog_id, '.', 3) AS id3,
FROM programs
ORDER BY CAST(id1 AS INT(4)), CAST(id2 AS INT(4)), CAST(id3 AS INT(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. डेटाबेस में एक php फॉर्म से कई पंक्तियों को सम्मिलित करना

  2. मैसकल स्लो इंसर्ट

  3. विभिन्न पंक्तियों के लिए जटिल एसक्यूएल बयान

  4. पाइथन में MySQLdb का उपयोग करके MySQL के साथ डालने के बाद आप सुरक्षित रूप से और कुशलता से पंक्ति आईडी कैसे प्राप्त करते हैं?

  5. सोलर 4.6.0 DataImportHandler प्रदर्शन को गति देता है