Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Định dạng chuỗi số trong MySQL: Đệm số 0 bên trái phần sau dấu gạch chéo

Tạo bảng và chèn dữ liệu

Trước tiên, tạo một bảng demo:

mysql> CREATE TABLE DemoTable1369 (
    -> BatchId VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.46 sec)

Chèn các bản ghi có định dạng số được phân tách bởi dấu gạch chéo:

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)

Xem dữ liệu gốc

mysql> SELECT * FROM DemoTable1369;

Kết quả:

+---------+
| BatchId |
+---------+
| 19/5    |
| 19/78   |
| 19/567  |
| 19/1234 |
+---------+
4 rows in set

Truy vấn định dạng: Đệm số 0 để đạt độ dài cố định

Sử dụng CONCAT, LEFT, SUBSTRING và LPAD để chuẩn hóa phần sau dấu gạch chéo về 4 chữ số (theo giá trị lớn nhất là 1234):

mysql> SELECT
    -> CONCAT(LEFT(BatchId, 3), LPAD(SUBSTRING(BatchId, 4), 4, '0'))
    -> FROM DemoTable1369;

Kết quả sau định dạng

+--------------------------------------------------------------+
| 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)

Giải thích: LEFT(BatchId,3) lấy 3 ký tự đầu ('19/'), SUBSTRING(BatchId,4) lấy phần còn lại, LPAD(..., 4, '0') đệm số 0 bên trái để đủ 4 ký tự.