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

SELECT ไม่ใช่คอลัมน์ว่างจากสองคอลัมน์ใน MySQL?


มีหลายวิธีในการเลือกคอลัมน์ที่ไม่เป็นค่าว่างจากสองคอลัมน์ ไวยากรณ์มีดังนี้:

กรณีที่ 1 :ใช้ฟังก์ชัน IFNULL()

ไวยากรณ์มีดังนี้:

เลือก IFNULL(yourColumnName1,yourColumnName2) เป็น anyVariableName จาก yourTableName

กรณีที่ 2 :ใช้ฟังก์ชัน coalesce()

ไวยากรณ์มีดังนี้:

เลือก COALESCE(yourColumnName1,yourColumnName2) เป็น anyVariableName จาก yourTableName

กรณีที่ 3: ใช้คำสั่ง CASE

ไวยากรณ์มีดังนี้:

เลือกกรณีที่ yourColumnName1 ไม่ใช่ NULL จากนั้น yourColumnName1 อื่น yourColumnName2END AS anyVariableNameFROM yourTableName;

กรณีที่ 4 :ใช้เฉพาะ IF()

ไวยากรณ์มีดังนี้:

เลือก IF (yourColumnName1 ISNULL, yourColumnName2, yourColumnName1) เป็น NotNULLValue จาก SelectNotNullColumnsDemo;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:

mysql> สร้างตาราง SelectNotNullColumnsDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(20), -> Age int -> , -> PRIMARY KEY(Id) -> );Query OK, 0 rows ได้รับผลกระทบ (0.86 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:

mysql> แทรกลงในค่า SelectNotNullColumnsDemo(Name,Age) ('John',NULL);Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงใน SelectNotNullColumnsDemo(Name,Age) values(NULL,23);Query ตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:

mysql> เลือก *จาก SelectNotNullColumnsDemo;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+----+------+------+| รหัส | ชื่อ | อายุ |+----+------+------+| 1 | จอห์น | NULL || 2 | NULL | 23 |+---+------+------+2 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเลือกค่าที่ไม่ใช่ค่าว่างจากสองคอลัมน์

กรณีที่ 1 :IFNULL()

แบบสอบถามมีดังนี้:

mysql> เลือก ifnull(Name,Age) เป็น NotNULLValue จาก SelectNotNullColumnsDemo;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+-------------+| NotNULLValue |+--------------+| จอห์น || 23 |+--------------+2 แถวในชุด (0.00 วินาที)

กรณีที่ 2 :รวมตัวกัน

แบบสอบถามมีดังนี้:

mysql> เลือกกลุ่ม (ชื่อ,อายุ) เป็น NotNULLValue จาก SelectNotNullColumnsDemo;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+-------------+| NotNULLValue |+--------------+| จอห์น || 23 |+--------------+2 แถวในชุด (0.00 วินาที)

กรณีที่ 3:กรณี

แบบสอบถามมีดังนี้:

mysql> เลือกกรณี -> เมื่อ Name ไม่เป็นค่าว่าง จากนั้น Name else Age -> สิ้นสุดเป็น NotNULLValue -> จาก SelectNotNullColumnsDemo;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+-------------+| NotNULLValue |+--------------+| จอห์น || 23 |+--------------+2 แถวในชุด (0.00 วินาที)

กรณีที่ 4 :IF()

แบบสอบถามมีดังนี้:

mysql> เลือก if(Name is NULL,Age,Name) เป็น NotNULLValue จาก SelectNotNullColumnsDemo;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+-------------+| NotNULLValue |+--------------+| จอห์น || 23 |+--------------+2 แถวในชุด (0.00 วินาที)