2011-03-04 11 views
6

मेरे पास एक बड़े आईएसएलएल डेटाबेस में एक आईएनटी फ़ील्ड है जिसमें एक आईएनटी फ़ील्ड में वृद्धिशील संख्याएं हैं। ये संख्याएं वर्तमान में नियमित ऑटोइनक्रिकमेंट नंबर (1, 2, 3) हैं, लेकिन मुझे शुरुआत में शून्य के साथ उन्हें तीन अंकों तक पैड करने की आवश्यकता है (इसलिए मुझे 001, 002, 003 .. 010, 011, आदि) मिलते हैं।शून्य के साथ एक mysql INT फ़ील्ड की शुरुआत पैडिंग

इस कॉलम को मेरे प्रारूप में बदलने के लिए मैं अपने डेटाबेस पर कौन से आदेश चला सकता हूं?

+0

संभावित डुप्लिकेट [मैं MySQL में 0001 पर ऑटोइनक्रिकमेंट प्रारूप कैसे सेट कर सकता हूं?] (Http://stackoverflow.com/questions/611340/how-can-i-set-autoincrement-format-to-0001- in-mysql) –

उत्तर

16

आप एक ZEROFILL विशेषता स्तंभ के लिए पैड के लिए डेटा डेटाबेस में जब से क्वेरी में जोड़ सकते हैं या,,

SELECT LPAD(CONVERT(`col`,VARCHAR(3)),3,'0') 

डेटा 3 अंकों वाले नंबर

+1

+1: डेटाबेस में डेटा के साथ गड़बड़ न करें, डेटाबेस को क्वेरी करते समय डेटा को उस प्रारूप में बदलें जो आपको आवश्यक है। – andri

+0

सहमत हैं, हमेशा डेटा को अलग-अलग प्रदर्शित करें, डेटाबेस – Simon

+0

में डेटा को न बदलें, जब मैं चयन कमांड चलाता हूं तो मुझे डेटा को तीन-अंकीय प्रारूप में होने की आवश्यकता होती है, इसलिए मैं डेटाबेस में डेटा बदलना चाहता था। हालांकि यह काम करना चाहिए। – MarathonStudios

1

के रूप में स्वरूपित नहीं निकाला जा कोई ऐसी है डेटाबेस में एक संख्यात्मक क्षेत्र में डेटा पर अग्रणी शून्य होने के रूप में बात; डेटा को इस तरह से संग्रहीत नहीं किया जाता है, रोमन अंकों में इसे संग्रहीत करने से कहीं अधिक है। आपको बस तीन नंबर मिल गया है; डेटाबेस में एक स्ट्रिंग क्षेत्र का उपयोग करने के

  • बदलें: अनुशंसित नहीं है क्योंकि आप आसानी से incrementing संख्या नहीं मिल सकता है तो आप स्ट्रिंग "003" प्राप्त करना चाहते हैं, तो बाहर आपके पास दो विकल्प मिल गया है।
  • अग्रणी शून्यों को जोड़ने के लिए डेटाबेस से इसे पुनर्प्राप्त करने के रूप में संख्या को प्रारूपित करें: बेहतर, लेकिन इसके अपने नुकसान हैं - उदा। तुलना धीमी हो जाएगी क्योंकि उन्हें अनुक्रमित नहीं किया गया है।
संबंधित मुद्दे