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

MySQL में आंशिक मान (जैसे 'John_120' में संख्या) पर सॉर्ट करना

SUBSTRING_INDEX और ORDER BY से संख्यात्मक भाग पर सॉर्ट

अंडरस्कोर से अलग किए गए स्ट्रिंग में SUBSTRING_INDEX() से संख्यात्मक भाग निकालकर संख्यात्मक क्रम में सॉर्ट करें।

तालिका और डेटा

mysql> CREATE TABLE DemoTable1502 (StudentId VARCHAR(40));
mysql> INSERT INTO DemoTable1502 VALUES
    -> ('John_120'), ('John_201'), ('Mike_178'), ('Bob_198');

क्वेरी: दाएँ भाग (संख्या) पर सॉर्ट

mysql> SELECT 
    -> SUBSTRING_INDEX(StudentId, '_', 1) AS LeftPart,
    -> SUBSTRING_INDEX(StudentId, '_', -1) AS RightPart
    -> FROM DemoTable1502
    -> ORDER BY RightPart;

परिणाम

+----------+-----------+
| LeftPart | RightPart |
+----------+-----------+
| John     | 120       |
| Mike     | 178       |
| Bob      | 198       |
| John     | 201       |
+----------+-----------+

व्याख्या:

  • SUBSTRING_INDEX(str, '_', 1) → पहला भाग (बाएँ)
  • SUBSTRING_INDEX(str, '_', -1) → अंतिम भाग (दाएँ)
  • ORDER BY RightPart → स्ट्रिंग के रूप में सॉर्ट (संख्यात्मक कास्ट बेहतर)

संख्यात्मक सॉर्ट के लिए: ORDER BY CAST(RightPart AS UNSIGNED)

  1. - MySQL में LIKE ऑपरेटर को IN() की तरह कैसे उपयोग करें?

    MySQL में LIKE ऑपरेटर को IN() की तरह उपयोग करने के लिए COUNT(), IF() और LIKE का संयोजन उपयोग करें। यह पैटर्न मिलान की गणना करने के लिए उपयोगी है। उदाहरण परिदृश्य विषय कॉलम में MySQL, Java, MongoDB शब्दों की घटनाएं गिनना। तालिका और डेटा mysql> CREATE TABLE DemoTable (Subject VARCHAR(80)); mysql&

  1. - MySQL क्वेरी: सकारात्मक मान वाली पंक्तियों के लिए TRUE लौटाएं

    समाधान IF() फंक्शन का उपयोग करके सकारात्मक मान के लिए TRUE (1), नकारात्मक के लिए FALSE (0) लौटाएं। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2038 (Value) VALUES (57), (-100), (-78), (78), (91), (-34); क्वेरी 0, TRUE, FALSE) AS Result FROM DemoTable2038; परिणाम +----+-------+--------+ | Id | Value

  1. - MySQL में विशिष्ट मान वाले कॉलम की संख्या कैसे गिनें?

    SUM() के साथ गणना बाइनरी मान (0/1) वाले कॉलम के लिए: select sum(value1+value2+value3) as `Total_Number_Of_1`, sum(value1 and value2 and value3) as `Total_Number_Of_Rows_With_1` from yourTableName; उदाहरण insert into demo36(value1,value2,value3) values(1,0,0), (1,0,1), (1,1,1), (0,1,0), (