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

MySQL क्वेरी: VARCHAR प्रकार से अधिकतम ID प्राप्त करें जहां मान संख्यात्मक हैं

MySQL में CAST() का उपयोग MAX() के अंदर करके आप VARCHAR कॉलम में संग्रहीत संख्यात्मक स्ट्रिंग्स का सही अधिकतम मान प्राप्त कर सकते हैं। स्ट्रिंग तुलना में '9' > '100' होता है, इसलिए कास्टिंग आवश्यक है।

उदाहरण तालिका बनाना (VARCHAR कॉलम)

mysql> CREATE TABLE DemoTable (UserMarks VARCHAR(20));

संख्यात्मक स्ट्रिंग डालना

mysql> INSERT INTO DemoTable VALUES ('77'), ('98'), ('45'), ('56'), ('89'), ('99'), ('91'), ('94');

डेटा देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-----------+
| UserMarks |
+-----------+
| 77        |
| 98        |
| 45        |
| 56        |
| 89        |
| 99        |
| 91        |
| 94        |
+-----------+

CAST के साथ सही अधिकतम मान प्राप्त करना

mysql> SELECT MAX(CAST(UserMarks AS SIGNED)) AS MAX_VALUE FROM DemoTable;

आउटपुट:

+-----------+
| MAX_VALUE |
+-----------+
| 99        |
+-----------+

व्याख्या:

  • समस्या: MAX(UserMarks) स्ट्रिंग तुलना करता है → '99' > '98' > ... > '9' > '89' (लेक्सिकोग्राफिक)। '9' '89' से बड़ा माना जाएगा!
  • समाधान: CAST(UserMarks AS SIGNED) प्रत्येक मान को संख्या में बदलता है, फिर MAX() सही संख्यात्मक अधिकतम ढूंढता है

कास्टिंग विकल्प:

  • CAST(UserMarks AS UNSIGNED) - केवल गैर-ऋणात्मक
  • CAST(UserMarks AS DECIMAL) - दशमलव मानों के लिए
  • UserMarks + 0 - अंतर्निहित कास्ट (MySQL विशिष्ट)

चेतावनी: गैर-संख्यात्मक मान (जैसे 'abc') कास्ट होने पर 0 बन जाते हैं। डेटा सफाई के लिए पहले फ़िल्टर करें: WHERE UserMarks REGEXP '^[0-9]+$'

  1. - MySQL में Cost और Quantity कॉलम से कुल राशि की गणना कैसे करें?

    MySQL में कॉलम गणना: Cost × Quantity = Total Amount MySQL में आप सीधे SELECT स्टेटमेंट में अंकगणितीय ऑपरेटर (*, +, -, /) का उपयोग करके गणना कर सकते हैं और परिणाम को नए कॉलम के रूप में दिखा सकते हैं। उदाहरण: प्रत्येक पंक्ति के लिए कुल राशि टेबल बनाएं: CREATE TABLE DemoTable ( Cost INT, Quant

  1. - MySQL में पंक्तियों के मान जोड़कर परिणाम सॉर्ट करना

    GROUP BY और ORDER BY से समूहवार योग और क्रम SUM() और GROUP BY से प्रत्येक समूह का योग निकालें, फिर ORDER BY से परिणाम क्रमबद्ध करें। तालिका और डेटा (Chris, 45), (David, 98), (Bob, 58); क्वेरी: नामवार कुल अंक, अवरोही क्रम ORDER BY TotalSum DESC; परिणाम +-------------+----------+ | StudentName

  1. - MySQL में दो कॉलम के मान गिनें और NULL को बाहर रखें

    COUNT() फ़ंक्शन से NULL मानों को छोड़कर कॉलम मान गिनना COUNT(कॉलम_नाम) स्वचालित रूप से NULL मानों को अनदेखा करता है। दो कॉलम के गैर-NULL मानों का कुल योग पाने के लिए दोनों COUNT को जोड़ें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1975 ( StudentName varchar(20), StudentMarks int ); Q