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

Tạo cột dẫn xuất giá trị từ cột khác trong MySQL với biến người dùng

Sử dụng biến session @bien trong SELECT để tính toán tích lũy (running total) hoặc giá trị phụ thuộc hàng trước.

Ví dụ minh họa

Tạo bảng và chèn dữ liệu:

mysql> CREATE TABLE DemoTable1868 (Value INT);
mysql> INSERT INTO DemoTable1868 VALUES(10),(20),(30),(40);

Tính tổng tích lũy (SecondColumn = Value + giá trị trước):

mysql> SELECT Value, (@iterator:=Value+@iterator) AS SecondColumn
    FROM DemoTable1868, (SELECT @iterator:=0) tbl;

Kết quả:

+-------+--------------+
| Value | SecondColumn |
+-------+--------------+
|    10 |           10 |
|    20 |           30 |
|    30 |           60 |
|    40 |          100 |
+-------+--------------+

Lưu ý: Thứ tự hàng không đảm bảo nếu không có ORDER BY. MySQL 8+ khuyến khích dùng Window Function SUM(Value) OVER (ORDER BY ...) thay vì biến.