คุณสามารถใช้ IFNULL() สำหรับสิ่งนี้ ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable -> ( -> added_date date, -> updated_date date -> );Query OK, 0 แถวได้รับผลกระทบ (0.95 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable ('2019-01-10','2019-06-01'); เคียวรีตกลง ได้รับผลกระทบ 1 แถว (0.19 วินาที)mysql> ลงในค่า DemoTable ('2019-05-19 ',NULL);ตกลง แบบสอบถาม 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า DemoTable (NULL,'2019-09-05'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก DemoTable;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+------------+--------------+| added_date | updated_date |+--------------------+-------------+| 2019-01-10 | 2019-06-01 || 2019-05-19 | NULL || NULL | 2019-09-05 |+-----------+--------------+3 แถวในชุด (0.00 วินาที)กรณีที่ 1 − หากคุณต้องการผลลัพธ์ในลำดับจากมากไปน้อย
นี่คือข้อความค้นหาเพื่อเลือกแถวที่มี added_date และ updated_date
mysql> เลือก *จากลำดับ DemoTable โดย ifnull(updated_date,added_date) desc;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+------------+--------------+| added_date | updated_date |+--------------------+-------------+| NULL | 2019-09-05 || 2019-01-10 | 2019-06-01 || 2019-05-19 | NULL |+------------+--------------+3 แถวในชุด (0.00 วินาที)กรณีที่ 2 − หากคุณต้องการผลลัพธ์ในลำดับจากน้อยไปมาก
นี่คือข้อความค้นหาเพื่อเลือกแถวที่มี added_date และ updated_date -
mysql> เลือก *จากคำสั่ง DemoTable โดย ifnull(updated_date,added_date);
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+------------+--------------+| added_date | updated_date |+--------------------+-------------+| 2019-05-19 | NULL || 2019-01-10 | 2019-06-01 || NULL | 2019-09-05 |+-----------+--------------+3 แถวในชุด (0.00 วินาที)