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

เลือกคอลัมน์อื่นเมื่อค่าที่เลือกเป็น 0 ใน MySQL

การใช้ฟังก์ชัน IF()

ใน MySQL สามารถใช้ฟังก์ชัน IF() เพื่อตรวจสอบเงื่อนไขและคืนค่าตามที่ต้องการ ไวยากรณ์พื้นฐานคือ:

SELECT IF(yourColumn = 0, alternativeColumn, yourColumn) AS alias_name
FROM yourTable;

ตัวอย่างการสร้างตารางและข้อมูลทดสอบ

CREATE TABLE demo30 (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    value INT,
    original_value INT
);

INSERT INTO demo30 (value, original_value) VALUES
(50, 10),
(1000, 0),
(0, 40),
(30, 0);

ข้อมูลในตาราง

+----+-------+----------------+
| id | value | original_value |
+----+-------+----------------+
| 1  | 50    | 10             |
| 2  | 1000  | 0              |
| 3  | 0     | 40             |
| 4  | 30    | 0              |
+----+-------+----------------+

คำสั่ง SELECT พร้อมเงื่อนไข IF()

SELECT id, IF(original_value = 0, value, original_value) AS Result
FROM demo30;

ผลลัพธ์

+----+--------+
| id | Result |
+----+--------+
| 1  | 10     |
| 2  | 1000   |
| 3  | 40     |
| 4  | 30     |
+----+--------+

คำอธิบาย

  • แถวที่ 1: original_value = 10 (ไม่ใช่ 0) → ใช้ original_value = 10
  • แถวที่ 2: original_value = 0 → ใช้ value = 1000
  • แถวที่ 3: original_value = 40 (ไม่ใช่ 0) → ใช้ original_value = 40
  • แถวที่ 4: original_value = 0 → ใช้ value = 30

ทางเลือกอื่น: ฟังก์ชัน COALESCE() และ NULLIF()

หากต้องการจัดการค่า NULL พร้อมกัน สามารถใช้:

SELECT COALESCE(NULLIF(original_value, 0), value) AS Result
FROM demo30;

วิธีนี้จะแปลง 0 เป็น NULL ก่อน แล้วค่อยเลือกค่าแรกที่ไม่ใช่ NULL