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

หาความต่างระหว่างสองคอลัมน์เป็นคอลัมน์ใหม่ใน MySQL

การคำนวณความต่างระหว่างสองคอลัมน์และแสดงเป็นคอลัมน์ใหม่ใน MySQL

ใช้การลบธรรมดา col1 - col2 ใน SELECT Clause พร้อม Alias

ตัวอย่างการใช้งาน

สร้างตารางมีค่าต่ำและค่าสูง:

mysql> create table DemoTable (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    LowValue int,
    HighValue int
);
mysql> insert into DemoTable(LowValue,HighValue) values(100,200);
mysql> insert into DemoTable(LowValue,HighValue) values(300,700);
mysql> insert into DemoTable(LowValue,HighValue) values(1000,2000);

ข้อมูล:

+----+----------+-----------+
| Id | LowValue | HighValue |
+----+----------+-----------+
| 1  | 100      | 200       |
| 2  | 300      | 700       |
| 3  | 1000     | 2000      |
+----+----------+-----------+

คิวรีคำนวณความต่าง:

mysql> select tbl.Id, tbl.LowValue, tbl.HighValue, HighValue - LowValue AS DifferenceBetweenTwoColumns from DemoTable tbl;
+----+----------+-----------+-----------------------------+
| Id | LowValue | HighValue | DifferenceBetweenTwoColumns |
+----+----------+-----------+-----------------------------+
| 1  | 100      | 200       | 100                         |
| 2  | 300      | 700       | 400                         |
| 3  | 1000     | 2000      | 1000                        |
+----+----------+-----------+-----------------------------+

การประยุกต์:

  • ค่าสัมบูรณ์: ABS(HighValue - LowValue)
  • เปอร์เซ็นต์: ((HighValue - LowValue) / LowValue) * 100
  • ใช้ใน WHERE: WHERE HighValue - LowValue > 500
  • สร้าง Generated Column (MySQL 5.7+): Difference INT GENERATED ALWAYS AS (HighValue - LowValue) STORED