สำหรับสิ่งนี้ คุณสามารถใช้ ORDER BY IF() ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable( Name varchar(50), Score int);Query OK, 0 แถวได้รับผลกระทบ (0.72 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable ('Chris',98) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า DemoTable ('David',45); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.13 วินาที) )mysql> แทรกลงในค่า DemoTable ('Bob',56); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable ('Sam', 89); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า DemoTable ('Carol',78); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก DemoTable;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+-------+-------+| ชื่อ | คะแนน |+-------+-------+| คริส | 98 || เดวิด | 45 || บ๊อบ | 56 || แซม | 89 || แครอล | 78 |+-------+-------+5 แถวในชุด (0.00 วินาที)ต่อไปนี้เป็นแบบสอบถามเพื่อสั่งซื้อบันทึกใน MySQL ตามเงื่อนไข -
mysql> เลือก *จากลำดับ DemoTable โดย if(Name='Sam',1,0) ASC,Score DESC;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+-------+-------+| ชื่อ | คะแนน |+-------+-------+| คริส | 98 || แครอล | 78 || บ๊อบ | 56 || เดวิด | 45 || แซม | 89 |+-------+-------+5 แถวในชุด (0.00 วินาที)