หากต้องการ ORDER BY จัดกลุ่มฟิลด์ ให้ใช้ ORDER BY CASE ร่วมกับ IN() CASE ประเมินเงื่อนไขที่แตกต่างกันในขณะที่ ORDER BY sort ค่าในการเรียงลำดับจากน้อยไปมากหรือจากมากไปน้อย ใช้ MySQL IN() เพื่อค้นหาการจับคู่
ให้เราสร้างตารางก่อน -
mysql> สร้างตาราง DemoTable( Value varchar(40));เคียวรีตกลง 0 แถวได้รับผลกระทบ (0.52 วินาที)
แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -
mysql> แทรกลงในค่า DemoTable ('John'); Query OK, 1 แถวที่ได้รับผลกระทบ (0.22 วินาที)mysql> แทรกลงในค่า DemoTable ('100&101'); Query OK, 1 แถวที่ได้รับผลกระทบ (0.09 วินาที)mysql> ลงในค่า DemoTable ('Sam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.09 วินาที) mysql> แทรกลงในค่า DemoTable ('90'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable ('Mike45 ');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.17 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -
mysql> เลือก *จาก DemoTable;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+---------+| ความคุ้มค่า |+---------+| จอห์น || 100&101 || แซม || 90 || Mike45 |+---------+5 แถวในชุด (0.00 วินาที)ต่อไปนี้เป็นแบบสอบถามที่จะสั่งซื้อตามเขตข้อมูลที่จัดกลุ่ม -
mysql> เลือก *จาก DemoTable ตามลำดับกรณีเมื่อ Value IN('John','Sam','Mike45') จากนั้นเลือก 100 เมื่อ Value='90' จากนั้น 101 เมื่อ Value='100&101' จากนั้น 102 อื่น 103end;
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+---------+| ความคุ้มค่า |+---------+| จอห์น || แซม || Mike45 || 90 || 100&101 |+---------+5 แถวในชุด (0.03 วินาที)