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

Đệm số 0 ở đầu (zerofill) cho cột INT trong MySQL

Thuộc tính ZEROFILL trong định nghĩa cột INT(n) tự động đệm số 0 ở bên trái để độ rộng hiển thị bằng n. Lưu ý: ZEROFILL ngầm hiểu là UNSIGNED.

Tạo bảng cột INT(8) ZEROFILL

mysql> CREATE TABLE DemoTable (Number INT(8) ZEROFILL);
Query OK, 0 rows affected (0.50 sec)
mysql> INSERT INTO DemoTable VALUES(10), (1234), (1), (678965);
Query OK, 4 rows affected (0.16 sec)

Kết quả hiển thị

mysql> SELECT * FROM DemoTable;
+----------+
| Number   |
+----------+
| 00000010 |
| 00001234 |
| 00000001 |
| 00678965 |
+----------+
4 rows in set (0.00 sec)

Lưu ý quan trọng:

  • ZEROFILL chỉ ảnh hưởng đến hiển thị, giá trị lưu trữ vẫn là số
  • Số chữ số hiển thị = n trong INT(n)
  • MySQL 8.0+ khuyến cáo không dùng ZEROFILL (deprecated), hãy xử lý định dạng ở tầng ứng dụng
  • Không dùng cho khóa ngoại (foreign key) vì kiểu dữ liệu khác nhau