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

MySQL कॉलम मान में ZEROFILL के साथ अग्रणी शून्य कैसे जोड़ें?

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 लीगेसी सिस्टम और सरल रिपोर्टिंग के लिए उपयुक्त है।

  1. - MySQL में UPDATE का उपयोग करके कॉलम मान रिप्लेस करना

    WHERE क्लॉज के साथ विशिष्ट पंक्ति का कॉलम मान अपडेट करना किसी विशिष्ट पंक्ति के कॉलम मान को बदलने के लिए UPDATE के साथ SET और WHERE का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Score INT ); रिकॉर्ड्स इन्सर्ट

  1. - MySQL में विशिष्ट कॉलम मान की अदला-बदली करना

    UPDATE और WHERE से विशिष्ट पंक्ति का मान बदलना UPDATE में WHERE क्लॉज का उपयोग करके केवल विशिष्ट शर्त पूरी करने वाली पंक्ति का कॉलम मान बदला जा सकता है। तालिका और डेटा (101, Chris), (102, Bob), (103, David), (104, Mike); आईडी 103 का नाम Carol में बदलना WHERE Id = 103 AND FirstName <> Carol; Que

  1. - MySQL में SUBSTRING_INDEX() का उपयोग करके कॉलम कैसे विभाजित करें?

    MySQL में SUBSTRING_INDEX() और LOCATE() फ़ंक्शन का उपयोग करके डिलिमिटर (जैसे अंडरस्कोर) के आधार पर कॉलम को भागों में विभाजित किया जा सकता है। सिंटैक्स 0: बाएं से count भाग -- count < 0: दाएं से |count| भाग उदाहरण: पहला भाग प्राप्त करें (पहले _ से पहले) mysql> CREATE TABLE DemoTable (Name VARCH