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

MAX(Column) मुझे गलत मान देता है

यह स्थिति तब हो सकती है जब आपका invoice_number एक टेक्स्ट कॉलम के रूप में संग्रहीत किया जाता है उदा। varchar(10) . उस स्थिति में, वर्णानुक्रम के आधार पर, 9 अधिकतम मान होगा।

आदर्श रूप से, आपको उन मानों को संग्रहित करना चाहिए जिन पर आप संख्यात्मक डेटाटाइप के रूप में संख्यात्मक संचालन करना चाहते हैं उदा। int . हालांकि, अगर किसी कारण से आप कॉलम डेटाटाइप नहीं बदल सकते हैं, तो आप MAX लागू करने से पहले कॉलम को कास्ट करने का प्रयास कर सकते हैं। , इस तरह:

select max (convert(invoice_number, signed integer)) as maxinv from invoice

नोट:मैं विशेष रूप से "मानों का उल्लेख करता हूं जिन पर आप संख्यात्मक संचालन करना चाहते हैं" क्योंकि ऐसे मामले हैं जहां इनपुट टेक्स्ट पूरी तरह से संख्यात्मक है, जैसे फोन नंबर या शायद क्रेडिट कार्ड नंबर, लेकिन ऐसा कोई परिदृश्य नहीं है जिसमें आप 2 फोन नंबर जोड़ना चाहते हैं, या क्रेडिट कार्ड नंबर का वर्गमूल लेना चाहते हैं। ऐसे मानों को टेक्स्ट के रूप में संग्रहित किया जाना चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल:समूह व्यक्तिगत परिणाम पंक्तियों में गिना जाता है

  2. दो तालिकाओं से दो स्तंभों को एक में मिलाएं

  3. एक चाइल्ड क्लास कंस्ट्रक्टर php में पैरेंट क्लास कंस्ट्रक्टर के साथ कैसे इंटरैक्ट करेगा?

  4. कस्टम टाइमस्टैम्प द्वारा MySQL समूह

  5. मेरा डेटाबेस बैकअप स्क्रिप्ट php में काम क्यों नहीं कर रहा है?