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

อัปเดตค่า 0 เป็นค่าที่กำหนดเองใน MySQL ด้วย IF()

บทความนี้สาธิตการใช้ฟังก์ชัน IF() ใน SELECT เพื่อแสดงค่าที่ปรับแต่ง: หากค่าเป็น 0 ให้แสดงค่าที่กำหนด (100000) มิฉะนั้นแสดงค่าเดิม (คล้าย COALESCE/ISNULL สำหรับ 0)

สร้างตารางและข้อมูล (มีค่า 0 หลายค่า)

mysql> CREATE TABLE DemoTable749 (Value INT);
Query OK, 0 rows affected (1.02 sec)

mysql> INSERT INTO DemoTable749 VALUES(10), (0), (769), (0), (78), (0);

คิวรีตรวจสอบและแทนที่ 0 ด้วย IF

mysql> SELECT *, IF(Value = 0, 100000, Value) FROM DemoTable749;

ผลลัพธ์

+-------+--------------------------+
| Value | if(Value=0,100000,Value) |
+-------+--------------------------+
| 10    | 10                       |
| 0     | 100000                   |
| 769   | 769                      |
| 0     | 100000                   |
| 78    | 78                       |
| 0     | 100000                   |
+-------+--------------------------+

คำอธิบาย:

  • IF(condition, true_value, false_value) - ฟังก์ชันเงื่อนไข Inline
  • Value = 0 - เงื่อนไขตรวจสอบเป็น 0
  • 100000 - ค่าที่จะแสดงถ้าเป็น 0
  • Value - ค่าที่จะแสดงถ้าไม่ใช่ 0

ฟังก์ชันคล้ายกัน:

  • COALESCE(val1, val2, ...) - คืนค่าแรกที่ไม่ใช่ NULL (ไม่ตรวจสอบ 0)
  • IFNULL(val1, val2) - คืน val2 ถ้า val1 เป็น NULL
  • NULLIF(val1, val2) - คืน NULL ถ้า val1 = val2
  • สำหรับ UPDATE จริง: UPDATE table SET Value = IF(Value=0, 100000, Value)