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

Đếm số chữ số 0 trong cột INT MySQL với LENGTH và REPLACE

Để đế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.