MySQL में LEFT() और LPAD() का उपयोग करके स्लैश के बाद संख्याओं को पैड करना
सबसे पहले एक टेबल बनाते हैं:
mysql> create table DemoTable1369 ( BatchId varchar(20) ); Query OK, 0 rows affected (0.46 sec)
टेबल में कुछ रिकॉर्ड डालें। यहां हम स्लैश से अलग की गई संख्याएं डाल रहे हैं:
mysql> insert into DemoTable1369 values('19/5'); Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1369 values('19/78'); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1369 values('19/567'); Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1369 values('19/1234'); Query OK, 1 row affected (0.11 sec)
सभी रिकॉर्ड देखने के लिए SELECT स्टेटमेंट का उपयोग करें:
mysql> select * from DemoTable1369;
आउटपुट:
+---------+ | BatchId | +---------+ | 19/5 | | 19/78 | | 19/567 | | 19/1234 | +---------+ 4 rows in set
नंबर-स्ट्रिंग फॉर्मेटिंग के लिए क्वेरी। हम स्लैश के बाद शून्य सेट कर रहे हैं ताकि फील्ड भर जाए। कुल फील्ड चौड़ाई उच्चतम मान द्वारा निर्धारित होती है, यानी "1234" के लिए 4:
mysql> select concat(left(BatchId,3), lpad(substring(BatchId, 4), 4, '0')) from DemoTable1369;
परिणाम:
+--------------------------------------------------------------+ | concat(left(BatchId,3), lpad(substring(BatchId, 4), 4, '0')) | +--------------------------------------------------------------+ | 19/0005 | | 19/0078 | | 19/0567 | | 19/1234 | +--------------------------------------------------------------+ 4 rows in set (0.00 sec)
व्याख्या: LEFT(BatchId,3) स्लैश सहित पहले 3 कैरेक्टर लेता है ("19/")। SUBSTRING(BatchId,4) स्लैश के बाद का भाग निकालता है। LPAD(..., 4, '0') इसे बाईं ओर शून्य से पैड करके 4 कैरेक्टर का बनाता है। अंत में CONCAT दोनों को जोड़ता है।