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

ลบจำนวนเท่ากันจากทุกค่าในคอลัมน์ MySQL ด้วยคณิตศาสตร์พื้นฐาน

การลบค่าคงที่จากทุกแถวในคอลัมน์ตัวเลข

ใช้ Operator - (Minus) ใน SELECT หรือ UPDATE เพื่อลบจำนวนเท่ากันจากทุกค่า

Syntax (SELECT - แสดงผลคำนวณ)

SELECT column_name - subtract_value AS result_alias FROM table_name;

Syntax (UPDATE - เปลี่ยนข้อมูลจริง)

UPDATE table_name SET column_name = column_name - subtract_value;

ตัวอย่าง: ลบ 20 จากทุกค่าในคอลัมน์ Number

สร้างตารางและเพิ่มข้อมูล:

mysql> CREATE TABLE DemoTable741 (Number INT);
Query OK, 0 rows affected (0.61 sec)

mysql> INSERT INTO DemoTable741 VALUES (70), (55), (89), (79), (34);
Query OK, 5 rows affected

ข้อมูลต้นฉบับ:

mysql> SELECT * FROM DemoTable741;
+--------+
| Number |
+--------+
| 70     |
| 55     |
| 89     |
| 79     |
| 34     |
+--------+
5 rows in set (0.00 sec)

SELECT คำนวณ (Number - 20) แสดงเป็น Result:

mysql> SELECT (Number - 20) AS Result FROM DemoTable741;
+--------+
| Result |
+--------+
| 50     |
| 35     |
| 69     |
| 59     |
| 14     |
+--------+
5 rows in set (0.00 sec)

UPDATE จริง (เปลี่ยนข้อมูลในตาราง):

mysql> UPDATE DemoTable741 SET Number = Number - 20;
Query OK, 5 rows affected (0.12 sec)

mysql> SELECT * FROM DemoTable741;
+--------+
| Number |
+--------+
| 50     |
| 35     |
| 69     |
| 59     |
| 14     |
+--------+
5 rows in set (0.00 sec)

การคำนวณคณิตศาสตร์อื่นๆ บนคอลัมน์

เงื่อนไขการ UPDATE

-- ลบ 20 เฉพาะค่าที่ > 50
UPDATE DemoTable741 SET Number = Number - 20 WHERE Number > 50;

-- ใช้ CASE สำหรับหลายเงื่อนไข
UPDATE DemoTable741 SET Number = CASE 
    WHEN Number > 100 THEN Number - 50
    WHEN Number > 50 THEN Number - 20
    ELSE Number - 10
END;

ข้อควรระวัง

  • UPDATE ไม่มี WHERE = แก้ไข **ทุกแถว** ในตาราง
  • ใช้ Transaction: START TRANSACTION; UPDATE ...; COMMIT/ROLLBACK;
  • ชนิดข้อมูล: INT ลบจนติดลบได้, UNSIGNED จะ Error/Wrap Around
  • Trigger AFTER UPDATE จะทำงาน (ถ้ามี)
OperationOperatorตัวอย่าง
บวก+SET price = price + 10
ลบ-SET price = price - 5
คูณ*SET price = price * 1.07 (เพิ่ม 7%)
หาร/SET price = price / 2
Modulo%SET price = price % 100