สำหรับสิ่งนี้ ใช้คำสั่งโดย nullif() ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable672( CustomerId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, CustomerName varchar(100), CustomerAmount int); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.81 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable672(CustomerName,CustomerAmount) ('Chris',560) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.51 วินาที)mysql> แทรกลงในค่า DemoTable672 (CustomerName, CustomerAmount) ('Robert', null);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า DemoTable672 (ชื่อลูกค้า CustomerAmount) ('', 450); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DemoTable672 (CustomerName, CustomerAmount) ('David',456) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า DemoTable672 (CustomerName, CustomerAmount) ('Carol',786); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก DemoTable672;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+-----------+--------------+----------------+| รหัสลูกค้า | ชื่อลูกค้า | จำนวนลูกค้า |+-----------+--------------+----------------+| 1 | คริส | 560 || 2 | โรเบิร์ต | NULL || 3 | | 450 || 4 | เดวิด | 456 || 5 | แครอล | 786 |+-----------+--------------+----------------+5 แถว ในชุด (0.00 วินาที)ต่อไปนี้เป็นวิธีที่คุณสามารถดำเนินการสั่งซื้อ MySQL แยกตามกรณี ที่นี่ เรายังใช้ FIELD() สำหรับการค้นหาแบบไม่คำนึงถึงตัวพิมพ์เล็ก-ใหญ่ -
mysql> เลือก *จาก DemoTable672 ORDER BY NULLIF(CustomerName,'') IS NULL, FIELD(CustomerAmount,560,786,450,456);
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+-----------+--------------+----------------+| รหัสลูกค้า | ชื่อลูกค้า | จำนวนลูกค้า |+-----------+--------------+----------------+| 2 | โรเบิร์ต | NULL || 1 | คริส | 560 || 5 | แครอล | 786 || 4 | เดวิด | 456 || 3 | | 450 |+-----------+-------------+----------------+5 แถว ในชุด (0.04 วินาที)