ZEROFILL đệm giá trị hiển thị của trường bằng số 0 ở bên trái cho đến độ rộng hiển thị được chỉ định trong định nghĩa cột. Ví dụ, nếu cột được thiết lập là int(8), độ rộng là 8. Nếu số là 4376, thì số 0 sẽ được đệm bên trái để đạt tổng độ rộng 8:
00004376
Tạo bảng demo
mysql> create table DemoTable (
-> Number int(8) zerofill
-> );
Query OK, 0 rows affected (0.50 sec)
Chèn dữ liệu
mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(1234); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable values(1); Query OK, 1 row affected (0.47 sec) mysql> insert into DemoTable values(678965); Query OK, 1 row affected (0.20 sec)
Hiển thị dữ liệu
mysql> select * from DemoTable;
Kết quả - Giá trị được đệm 0 bên trái
+----------+ | Number | +----------+ | 00000010 | | 00001234 | | 00000001 | | 00678965 | +----------+ 4 rows in set (0.00 sec)
Đặc điểm quan trọng:
- ZEROFILL tự động thêm thuộc tính
UNSIGNEDcho cột (không chấp nhận số âm). - Chỉ ảnh hưởng đến cách hiển thị, giá trị lưu trữ thực tế không thay đổi.
- Thường dùng cho: mã số thứ tự, mã sản phẩm, số tài khoản, v.v.
Lưu ý: Từ MySQL 8.0.17, ZEROFILL bị deprecated (không khuyến khích) cho các kiểu số. Nên xử lý định dạng ở tầng ứng dụng.