เรียงลำดับตามวันที่และตั้งค่าวันที่ว่างในช่วงสุดท้ายโดยใช้คำสั่ง ORDER BY และ IS NULL ไวยากรณ์มีดังนี้:
เลือก *จาก yourTableNameORDER BY (yourDateColumnName IS NULL), yourDateColumnName DESC;
ในไวยากรณ์ข้างต้น เราจะจัดเรียง NULL ก่อนหลังจากวันที่นั้น เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:
mysql> สร้างตาราง DateColumnWithNullDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> วันที่เวลาล็อกอิน, -> คีย์หลัก (Id) -> ); เคียวรีตกลง 0 แถวได้รับผลกระทบ (0.84 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:
mysql> แทรกลงในค่า DateColumnWithNullDemo(LoginDateTime) (date_add(now() ช่วงเวลา -1 ปี)); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> แทรกลงในค่า DateColumnWithNullDemo (LoginDateTime) (NULL); แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.17 วินาที)mysql> แทรกลงในค่า DateColumnWithNullDemo(LoginDateTime) (NULL) ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงใน DateColumnWithNullDemo (LoginDateTime) ค่า (ตอนนี้ ()); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า DateColumnWithNullDemo (LoginDateTime) (curdate()); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที) mysql> แทรกลงในค่า DateColumnWithNullDemo (LoginDateTime) ('2017-08-25 15:30:35');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า DateColumnWithNullDemo (LoginDateTime) (NULL); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DateColumnWithNullDemo (LoginDateTime) (' 2016-12-25 16:55:55 ');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงใน DateColumnWithNullDemo (LoginDateTime) ค่า (NULL); แบบสอบถามตกลง 1 แถว ffected (0.22 วินาที) mysql> แทรกลงในค่า DateColumnWithNullDemo (LoginDateTime) ('2014-11-12 10:20:23'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DateColumnWithNullDemo (LoginDateTime) (' 2020-01-01 06:45:23');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.23 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:
mysql> เลือก *จาก DateColumnWithNullDemo;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+---------------------+| รหัส | เข้าสู่ระบบวันที่เวลา |+----+---------------------+| 1 | 2018-01-29 17:07:20 || 2 | NULL || 3 | NULL || 4 | 2019-01-29 17:07:54 || 5 | 2019-01-29 00:00:00 || 6 | 2017-08-25 15:30:35 || 7 | NULL || 8 | 2016-12-25 16:55:55 || 9 | NULL || 10 | 2014-11-12 10:20:23 || 11 | 2020-01-01 06:45:23 |+----+---------------------+11 แถวในชุด (0.00 วินาที)นี่คือการสืบค้นเพื่อตั้งค่า NULL สุดท้ายและเรียงลำดับวันที่จากมากไปหาน้อย:
mysql> เลือก *จาก DateColumnWithNullDemo -> สั่งซื้อโดย (LoginDateTime IS NULL), LoginDateTime DESC;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+---------------------+| รหัส | เข้าสู่ระบบวันที่เวลา |+----+---------------------+| 11 | 2020-01-01 06:45:23 || 4 | 2019-01-29 17:07:54 || 5 | 2019-01-29 00:00:00 || 1 | 2018-01-29 17:07:20 || 6 | 2017-08-25 15:30:35 || 8 | 2016-12-25 16:55:55 || 10 | 2014-11-12 10:20:23 || 2 | NULL || 3 | NULL || 7 | NULL || 9 | NULL |+----+---------------------+11 แถวในชุด (0.00 วินาที)