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

Thêm số 0 dẫn đầu (leading zeros) cho cột trong MySQL với LPAD()


Giới thiệu

Hàm LPAD(str, len, padstr) thêm ký tự padstr vào bên trái chuỗi str cho đến khi độ dài đạt len. Dùng để thêm số 0 dẫn đầu (zero-padding).

Ví dụ minh họa

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

mysql> CREATE TABLE DemoTable (
    Code VARCHAR(100)
);
mysql> INSERT INTO DemoTable VALUES ('JS'), ('CB'), ('DM'), ('CT');

Xem dữ liệu trước

mysql> SELECT * FROM DemoTable;
+------+
| Code |
+------+
| JS   |
| CB   |
| DM   |
| CT   |
+------+

Cập nhật thêm 0 dẫn đầu độ dài 8

mysql> UPDATE DemoTable SET Code = LPAD(Code, 8, '0');
Query OK, 4 rows affected (0.10 sec)

Kết quả sau

mysql> SELECT * FROM DemoTable;
+----------+
| Code     |
+----------+
| 000000JS |
| 000000CB |
| 000000DM |
| 000000CT |
+----------+

Chỉ SELECT không UPDATE

SELECT LPAD(Code, 8, '0') AS PaddedCode FROM DemoTable;

Hàm đối ứng: RPAD()

RPAD('ABC', 8, '0')  -- 'ABC00000' (thêm phải)

Ứng dụng thực tế

  • Mã sản phẩm: SP0001, SP0002...
  • Mã nhân viên: NV00001.
  • Số hóa đơn: INV00000123.
  • Sắp xếp chuỗi số đúng thứ tự tự nhiên: '2' < '10' nhưng '02' > '10' → cần padding.

Lưu ý

  • Nếu chuỗi gốc dài hơn len, LPAD **cắt bớt** từ bên phải (giữ len ký tự trái).
  • Cột phải đủ rộng (VARCHAR length >= len).
  • MySQL 8.0: Có thể dùng FORMAT() hoặc LPAD() trong generated column.