หากต้องการสั่งซื้อโดยชอบใน MySQL ให้ใช้คำสั่ง case ไวยากรณ์มีดังนี้ −
เลือก *FROM yourTableName เรียงตามกรณีเมื่อ yourColumnName ชอบ '%yourPatternValue1%' จากนั้น 1 เมื่อ yourColumnName ชอบ '%yourPatternValue2%' จากนั้น 2else 3end;
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง OrderByLikeDemo -> ( -> Id int, -> Name varchar(100) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.84 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า OrderByLikeDemo (100, 'John Smith'); แบบสอบถามตกลง, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า OrderByLikeDemo (101,'Carol Taylor'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.23 วินาที) mysql> แทรกลงในค่า OrderByLikeDemo (102, 'David Miller'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า OrderByLikeDemo (103, 'Mike Taylor'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.18 วินาที) mysql> แทรกลงในค่า OrderByLikeDemo (104, 'Bob Miller'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า OrderByLikeDemo (105, 'Sam Williams'); สืบค้นตกลง 1 แถวได้รับผลกระทบ ( 0.16 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก OrderByLikeDemo;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+------+-------------+| รหัส | ชื่อ |+------+-------------+| 100 | จอห์น สมิธ || 101 | แครอล เทย์เลอร์ || 102 | เดวิด มิลเลอร์ || 103 | ไมค์ เทย์เลอร์ || 104 | บ๊อบ มิลเลอร์ || 105 | Sam Williams |+------+--------------+6 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามเพื่อรับบันทึกทั้งหมดด้วย ORDER BY เช่น -
mysql> เลือก *จาก OrderByLikeDemo -> เรียงลำดับตามกรณี -> เมื่อชื่อเหมือน '%Taylor%' แล้ว 1 -> เมื่อชื่อเหมือน '%Miller%' จากนั้น 2 -> อื่น 3 -> สิ้นสุด;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+------+-------------+| รหัส | ชื่อ |+------+-------------+| 101 | แครอล เทย์เลอร์ || 103 | ไมค์ เทย์เลอร์ || 102 | เดวิด มิลเลอร์ || 104 | บ๊อบ มิลเลอร์ || 100 | จอห์น สมิธ || 105 | Sam Williams |+------+--------------+6 แถวในชุด (0.00 วินาที)