Để đếm số lượng chữ số 0 trong giá trị số nguyên (INT), bạn có thể chuyển số thành chuỗi rồi dùng LENGTH() trừ LENGTH(REPLACE(...)).
Ví dụ minh họa
Tạo bảng:
mysql> create table DemoTable (
Value int
);
Chèn dữ liệu:
mysql> insert into DemoTable values(10002000); mysql> insert into DemoTable values(00000); mysql> insert into DemoTable values(400560);
Hiển thị dữ liệu (MySQL hiển thị 00000 thành 0):
mysql> select * from DemoTable;
Kết quả:
+----------+ | Value | +----------+ | 10002000 | | 0 | | 400560 | +----------+
Truy vấn đếm số chữ số 0
mysql> select (length(Value) - length(replace(Value,'0',''))) AS NumberOfZeros from DemoTable;
Kết quả:
+---------------+ | NumberOfZeros | +---------------+ | 6 | | 1 | | 3 | +---------------+
Giải thích:
LENGTH(Value): Độ dài chuỗi biểu diễn số (VD: '10002000' → 8 ký tự)REPLACE(Value,'0',''): Xóa tất cả chữ số '0' → '12' (độ dài 2)8 - 2 = 6: Số lượng chữ số 0- Giá trị 0: '0' độ dài 1, replace thành '' độ dài 0 → 1 - 0 = 1
- 400560: '400560' độ dài 6, replace '0' → '456' độ dài 3 → 6 - 3 = 3
⚠️ Lưu ý quan trọng: Cách này đếm chữ số 0 trong **biểu diễn thập phân** của số. Giá trị 00000 khi INSERT vào INT sẽ lưu là 0 (1 chữ số), không phải 5 chữ số 0. Nếu cần giữ số 0 dẫn đầu, phải dùng kiểu VARCHAR hoặc CHAR.