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

Chia 2 cột số và hiển thị kết quả cột mới trong MySQL

Phép chia cột

Tính toán trực tiếp trong SELECT, gán alias cho cột kết quả.

Ví dụ

Tạo bảng:

CREATE TABLE DemoTable719 (
    FirstNumber INT,
    SecondNumber INT
);
INSERT INTO DemoTable719 VALUES
(20, 10), (500, 50), (400, 20);

Truy vấn chia:

SELECT *,
       FirstNumber / SecondNumber AS Result
FROM DemoTable719;

Kết quả:

+-------------+--------------+---------+
| FirstNumber | SecondNumber | Result  |
+-------------+--------------+---------+
| 20          | 10           | 2.0000  |
| 500         | 50           | 10.0000 |
| 400         | 20           | 20.0000 |
+-------------+--------------+---------+

Chi tiết kiểu dữ liệu

  • MySQL thực hiện floating-point division cho INT / INT → kết quả DECIMAL.
  • Độ chính xác mặc định: 4 chữ số thập phân (có thể thay đổi với CAST hoặc ROUND).
  • Nếu muốn integer division: FirstNumber DIV SecondNumber (trả về INT).

Xử lý chia cho 0

SELECT *,
       CASE
           WHEN SecondNumber = 0 THEN NULL
           ELSE FirstNumber / SecondNumber
       END AS Result
FROM DemoTable719;

Hoặc dùng NULLIF:

SELECT *,
       FirstNumber / NULLIF(SecondNumber, 0) AS Result
FROM DemoTable719;

Làm tròn kết quả

-- 2 chữ số thập phân
ROUND(FirstNumber / SecondNumber, 2)

-- Làm tròn xuống (floor)
FLOOR(FirstNumber / SecondNumber)

-- Làm tròn lên (ceil)
CEIL(FirstNumber / SecondNumber)

Lưu ý

  • Chia cho 0 trả về NULL (không báo lỗi) trong SELECT, nhưng cảnh báo (Warning).
  • Trong stored procedure với STRICT_TRANS_TABLES, chia cho 0 có thể gây lỗi.
  • Luôn kiểm tra mẫu số = 0 trong production code.