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

แบบสอบถาม MySQL เพื่ออัปเดตบันทึกวันที่ด้วยค่า NULL


คุณสามารถใช้ 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 วินาที)