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

Cách chọn các hàng có hơn 2 chữ số thập phân trong MySQL

Để lọc các bản ghi có phần thập phân dài hơn 2 chữ số, có thể dùng hàm SUBSTR() và INSTR() để xác định vị trí dấu chấm và độ dài phần thập phân.

Ví dụ minh họa

Tạo bảng lưu số dưới dạng chuỗi (VARCHAR):

CREATE TABLE selectRows2DecimalPlacesDemo (
    Amount VARCHAR(100)
);

INSERT INTO selectRows2DecimalPlacesDemo VALUES ('234.5678');
INSERT INTO selectRows2DecimalPlacesDemo VALUES ('19.50');
INSERT INTO selectRows2DecimalPlacesDemo VALUES ('23.456');
INSERT INTO selectRows2DecimalPlacesDemo VALUES ('12.123');

Dữ liệu:

+----------+
| Amount   |
+----------+
| 234.5678 |
| 19.50    |
| 23.456   |
| 12.123   |
+----------+

Câu truy vấn lọc các hàng có hơn 2 chữ số thập phân:

SELECT * FROM selectRows2DecimalPlacesDemo
WHERE LENGTH(SUBSTR(Amount, INSTR(Amount, '.'))) > 3;

Kết quả (chỉ giữ lại 3 hàng có phần thập phân > 2 chữ số):

+----------+
| Amount   |
+----------+
| 234.5678 |
| 23.456   |
| 12.123   |
+----------+

Giải thích:

  • INSTR(Amount, '.') tìm vị trí dấu chấm.
  • SUBSTR(Amount, ...) lấy chuỗi con từ dấu chấm đến cuối (bao gồm cả dấu chấm).
  • LENGTH(...) > 3 nghĩa là có ít nhất 3 ký tự sau dấu chấm (dấu chấm + 2 chữ số = 3, nên > 3 là từ 3 chữ số thập phân trở lên).

Lưu ý: Cách này phù hợp khi dữ liệu lưu ở dạng TEXT/VARCHAR. Nếu cột là kiểu số (DECIMAL, FLOAT), bạn nên dùng logic so sánh giá trị với ROUND() hoặc TRUNCATE().