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

Truy vấn MySQL lọc bản ghi DECIMAL là số nguyên (phần thập phân = 0)

Lọc số thập phân có phần thập phân bằng 0 trong MySQL

Sử dụng hàm FLOOR() (làm tròn xuống) so sánh với giá trị gốc: nếu Value = FLOOR(Value) thì phần thập phân = 0 (số nguyên).

1. Tạo bảng kiểu DECIMAL(4,2)

mysql> CREATE TABLE DemoTable (Value DECIMAL(4,2));
mysql> INSERT INTO DemoTable VALUES (54.20), (55.0), (7.8), (9.0), (9.2);

2. Xem dữ liệu

mysql> SELECT * FROM DemoTable;
+-------+
| Value |
+-------+
| 54.20 |
| 55.00 |
| 7.80  |
| 9.00  |
| 9.20  |
+-------+

3. Truy vấn: Lọc giá trị phần thập phân = 0

mysql> SELECT * FROM DemoTable WHERE Value = FLOOR(Value);

4. Kết quả

+-------+
| Value |
+-------+
| 55.00 |
| 9.00  |
+-------+

Giải thích:

  • FLOOR(54.20) = 54 ≠ 54.20 → loại
  • FLOOR(55.00) = 55 = 55.00 → giữ
  • FLOOR(7.80) = 7 ≠ 7.80 → loại
  • FLOOR(9.00) = 9 = 9.00 → giữ
  • FLOOR(9.20) = 9 ≠ 9.20 → loại

Các cách khác:

  • WHERE Value = CAST(Value AS UNSIGNED) (chỉ số dương)
  • WHERE Value % 1 = 0 (modulo 1 = phần thập phân)
  • WHERE Value - FLOOR(Value) = 0
  • WHERE TRUNCATE(Value, 0) = Value

Lưu ý: Với số âm, FLOOR(-1.5) = -2 (khác TRUNCATE(-1.5,0) = -1). Dùng TRUNCATE an toàn hơn cho số âm.

Ứng dụng: Làm sạch dữ liệu, tìm giá tiền tròn, lọc số lượng nguyên từ cột DECIMAL.