MySQL में संख्यात्मक कॉलम में अग्रणी शून्य (leading zeros) जोड़कर निश्चित चौड़ाई का डिस्प्ले फॉर्मेट प्राप्त करने के लिए ZEROFILL एट्रिब्यूट का उपयोग करें। यह अकाउंट नंबर, इनवॉइस नंबर, आईडी आदि के लिए आदर्श है।
उदाहरण: ZEROFILL के साथ ऑटो-इन्क्रीमेंट ID
4-अंकीय ZEROFILL कॉलम के साथ टेबल बनाएं:
mysql> CREATE TABLE DemoTable1913 (
Code INT(4) ZEROFILL AUTO_INCREMENT NOT NULL,
PRIMARY KEY (Code)
);
रिकॉर्ड इन्सर्ट करें (मान प्रदान न करें, ऑटो-इन्क्रीमेंट उपयोग करें):
mysql> INSERT INTO DemoTable1913 VALUES (1), (2), (3), (4);
परिणाम - स्वचालित रूप से अग्रणी शून्य के साथ:
+------+ | Code | +------+ | 0001 | | 0002 | | 0003 | | 0004 | +------+
ZEROFILL कैसे काम करता है
INT(4) ZEROFILL- 4 अंकों तक बाएं पैड करता है शून्य से- अनसाइन्ड बन जाता है: ZEROFILL अंतर्निहित रूप से
UNSIGNEDजोड़ता है - केवल डिस्प्ले: स्टोरेज में मान संख्यात्मक रहता है (1, 2, 3...), केवल डिस्प्ले प्रभावित होता है
- चौड़ाई:
INT(6) ZEROFILL→ 000001, 000002, आदि
महत्वपूर्ण विचार
लाभ
- एप्लिकेशन कोड में फॉर्मेटिंग लॉजिक की आवश्यकता नहीं
- सॉर्टिंग संख्यात्मक क्रम में काम करता है (0001, 0002...)
- रिपोर्टिंग और UI के लिए तैयार आउटपुट
सीमाएं
- केवल संख्यात्मक प्रकार: INT, BIGINT, DECIMAL, आदि के साथ काम करता है
- स्ट्रिंग कॉलम नहीं: VARCHAR/CHAR के लिए
LPAD()उपयोग करें - अनसाइन्ड: ऋणात्मक मान स्टोर नहीं कर सकते
- माइग्रेशन: कुछ टूल्स/ORM ZEROFILL को सही ढंग से हैंडल नहीं कर सकते
वैकल्पिक: LPAD() फंक्शन (किसी भी प्रकार के लिए)
-- सिलेक्ट में फॉर्मेटिंग SELECT LPAD(id, 4, '0') AS formatted_id FROM table; -- इन्सर्ट में फॉर्मेटिंग INSERT INTO table (code) VALUES (LPAD(1, 4, '0'));
बेस्ट प्रैक्टिस
आंतरिक प्रोसेसिंग के लिए संख्यात्मक मान स्टोर करें, डिस्प्ले लेयर (एप्लिकेशन/रिपोर्ट) पर फॉर्मेटिंग लागू करें। ZEROFILL लीगेसी सिस्टम और सरल रिपोर्टिंग के लिए उपयुक्त है।