Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

คำนวณค่าระหว่างคอลัมน์ขณะ UPDATE ใน MySQL (บวก ลบ คูณ หาร)

บทนำ

สามารถคำนวณค่าจากคอลัมน์อื่นๆ และอัปเดตลงในคอลัมน์เป้าหมายได้ในคำสั่ง UPDATE เดียว โดยใช้ตัวดำเนินการคณิตศาสตร์มาตรฐาน

ตัวอย่างการสร้างตาราง

mysql> CREATE TABLE DemoTable (
    -> Number1 INT,
    -> Number2 INT,
    -> AddResult INT,
    -> MinusResult INT,
    -> MultiplyResult INT,
    -> DivideResult INT
    -> );
Query OK, 0 rows affected (0.89 sec)

เพิ่มข้อมูลทดสอบ

mysql> INSERT INTO DemoTable(Number1, Number2) VALUES(40, 20);

แสดงข้อมูลก่อนอัปเดต

mysql> SELECT * FROM DemoTable;

ผลลัพธ์

+---------+---------+-----------+-------------+----------------+--------------+
| Number1 | Number2 | AddResult | MinusResult | MultiplyResult | DivideResult |
+---------+---------+-----------+-------------+----------------+--------------+
| 40      | 20      | NULL      | NULL        | NULL           | NULL         |
+---------+---------+-----------+-------------+----------------+--------------+
1 row in set (0.00 sec)

คำสั่ง UPDATE คำนวณทั้ง 4 ดำเนินการ

mysql> UPDATE DemoTable SET AddResult = (Number1 + Number2);
Query OK, 1 row affected (0.22 sec)

mysql> UPDATE DemoTable SET MinusResult = (Number1 - Number2);
Query OK, 1 row affected (0.08 sec)

mysql> UPDATE DemoTable SET MultiplyResult = (Number1 * Number2);
Query OK, 1 row affected (0.08 sec)

mysql> UPDATE DemoTable SET DivideResult = (Number1 / Number2);
Query OK, 1 row affected (0.07 sec)

ตรวจสอบผลลัพธ์

mysql> SELECT * FROM DemoTable;

ผลลัพธ์

+---------+---------+-----------+-------------+----------------+--------------+
| Number1 | Number2 | AddResult | MinusResult | MultiplyResult | DivideResult |
+---------+---------+-----------+-------------+----------------+--------------+
| 40      | 20      | 60        | 20          | 800            | 2            |
+---------+---------+-----------+-------------+----------------+--------------+
1 row in set (0.00 sec)

รวมใน UPDATE เดียว (มีประสิทธิภาพกว่า)

UPDATE DemoTable SET
    AddResult = Number1 + Number2,
    MinusResult = Number1 - Number2,
    MultiplyResult = Number1 * Number2,
    DivideResult = Number1 / Number2;

ตัวดำเนินการคณิตศาสตร์ใน MySQL

Operatorความหมายตัวอย่างผลลัพธ์
+บวก10 + 515
-ลบ10 - 55
*คูณ10 * 550
/หาร (ได้ทศนิยม)10 / 42.5
DIVหารแบบจำนวนเต็ม10 DIV 42
% หรือ MODหารเอาเศษ10 % 31

ข้อควรระวัง

  • การหารด้วย 0 จะได้ NULL (ไม่ Error)
  • ชนิดข้อมูลผลลัพธ์ขึ้นกับ Operand (INT + INT = INT, INT + DECIMAL = DECIMAL)
  • ใช้ CAST() หากต้องการควบคุมชนิดข้อมูลผลลัพธ์