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

MySQL में कॉलम मानों को ZEROFILL से शून्य से पैड करना

MySQL में ZEROFILL एट्रिब्यूट: संख्याओं को अग्रणी शून्य से पैड करना

MySQL में ZEROFILL एट्रिब्यूट संख्यात्मक कॉलम के प्रदर्शित मान को परिभाषित प्रदर्शन चौड़ाई तक बाएं शून्य से पैड करता है। यह केवल प्रदर्शन प्रभावित करता है, संग्रहीत मान नहीं।

उदाहरण के साथ पूर्ण कार्यान्वयन

ZEROFILL के साथ टेबल बनाना

mysql> CREATE TABLE DemoTable626 (Value INT(5) ZEROFILL);

नोट: INT(5) में 5 प्रदर्शन चौड़ाई है। ZEROFILL स्वचालित रूप से UNSIGNED जोड़ देता है।

रिकॉर्ड डालना

mysql> INSERT INTO DemoTable626 VALUES(9), (12), (567), (3478);

सभी रिकॉर्ड देखना (प्रदर्शित मान)

mysql> SELECT * FROM DemoTable626;

आउटपुट:

+-------+
| Value |
+-------+
| 00009 |
| 00012 |
| 00567 |
| 03478 |
+-------+
4 rows in set (0.00 sec)

महत्वपूर्ण व्यवहार:

  • संग्रहीत मान: 9, 12, 567, 3478 (बिना पैडिंग के)
  • प्रदर्शित मान: 00009, 00012, 00567, 03478 (5 अंकों तक पैडेड)
  • गणना/तुलना वास्तविक मान पर होती है

ZEROFILL विशेषताएं

SELECT में स्पष्ट पैडिंग (LPAD)

ZEROFILL के बिना किसी भी क्वेरी में पैडिंग के लिए:

SELECT LPAD(CAST(Value AS CHAR), 5, '0') AS PaddedValue FROM DemoTable626;

यह किसी भी कॉलम पर काम करता है, स्थायी स्कीमा परिवर्तन की आवश्यकता नहीं।

स्ट्रिंग कॉलम के लिए पैडिंग

SELECT LPAD('42', 6, '0');  -- '000042'
SELECT RPAD('42', 6, '0');  -- '420000' (दाएं पैड)

उपयोग के मामले

  • आईडी प्रदर्शन: 000001, 000002, ...
  • चालान/ऑर्डर नंबर: INV-000123
  • फिक्स्ड-विड्थ एक्सपोर्ट फॉर्मेट
  • लिगेसी सिस्टम इंटरफेस

चेतावनी

  • ZEROFILL MySQL 8.0.17+ में डिप्रिकेटेड है (भविष्य में हटाया जा सकता है)
  • एप्लिकेशन लेयर पर फॉर्मेटिंग करना बेहतर
  • CAST(Value AS CHAR) पर ZEROFILL प्रभाव नहीं डालता

आधुनिक विकल्प

-- एप्लिकेशन में (Python)
f"{value:05d}"  # '00009'

-- SQL में (क्वेरी समय)
LPAD(CAST(Value AS CHAR), 5, '0')
  1. - MySQL में कॉलम मानों को शफ़ल करना

    परिचय MySQL में ORDER BY RAND() का उपयोग करके टेबल की पंक्तियों को यादृच्छिक क्रम में प्राप्त किया जा सकता है, जिससे प्रभावी रूप से कॉलम मान शफ़ल हो जाते हैं। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (0.91 sec) INSERT INTO DemoTable1557(SubjectName) VALUES(C); Query OK, 1 ro

  1. - MySQL में कॉलम मानों को अलग टेक्स्ट के साथ जोड़ें और एकल कॉलम में प्रदर्शित करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.93 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(101,Chris); Query OK, 1 row affected (0.25 sec) mysq

  1. - MySQL में GROUP_CONCAT और CASE से अलग शर्तों वाले समान कॉलम के मान जोड़ें

    एक ही कॉलम (Name) की अलग-अलग शर्तों (Subject) के मानों को जोड़ने के लिए CASE के साथ सशर्त एग्रीगेशन और CONCAT या GROUP_CONCAT का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1869 ( Id INT, Subject VARCHAR(20), Name VARCHAR(20) ); डेटा डालें mysql> INSERT INTO DemoTable1869 VALUES(

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
विशेषताव्यवहार
अंतर्निहित UNSIGNEDZEROFILL कॉलम स्वचालित रूप से UNSIGNED होते हैं
केवल प्रदर्शनसंग्रहण, गणना, इंडेक्सिंग वास्तविक मान पर
चौड़ाई से बड़ा मानपूरा मान प्रदर्शित होता है (काटा नहीं जाता)
ऋणात्मक मानअनुमत नहीं (UNSIGNED के कारण)