คุณสามารถใช้ ORDER BY RIGHT() เพื่อ ORDER BY สตริงอักขระ 2 ตัวสุดท้ายได้
ไวยากรณ์มีดังนี้
เลือก yourColumnName จาก yourTableName ORDER BY RIGHT(yourColumnName , 2);
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้
mysql> สร้างตาราง OrderByLast2CharactersDemo -> ( -> CustomerId varchar(20), -> CustomerName varchar(20) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.58 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงใน OrderByLast2CharactersDemo(CustomerId,CustomerName) values('John-98','John');Query OK, 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> แทรกลงใน OrderByLast2CharactersDemo(CustomerId,CustomerName) ค่า ('Carol -91','Carol');Query OK, 1 แถวได้รับผลกระทบ (0.21 วินาที)mysql> แทรกลงในค่า OrderByLast2CharactersDemo (CustomerId,CustomerName) ('Bob-99','Bob');Query OK, 1 แถวได้รับผลกระทบ (0.22) sec)mysql> แทรกลงใน OrderByLast2CharactersDemo (CustomerId,CustomerName) ค่า ('David-67','David'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก OrderByLast2CharactersDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+------------+--------------+| รหัสลูกค้า | ชื่อลูกค้า |+-----------+------------+| John-98 | จอห์น || Carol-91 | แครอล || Bob-99 | บ๊อบ || David-67 | David |+------------+-------------+4 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามเพื่อเรียงลำดับสตริงอักขระ 2 ตัวสุดท้าย
กรณีที่ 1 :ผลลัพธ์อยู่ในลำดับจากน้อยไปมาก
แบบสอบถามมีดังนี้ −
mysql> เลือก CustomerId จาก OrderByLast2CharactersDemo ORDER BY RIGHT(CustomerId , 2);
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+-----------+| รหัสลูกค้า |+-----------+| David-67 || Carol-91 || John-98 || Bob-99 |+-----------+4 แถวในชุด (0.01 วินาที)กรณีที่ 2 ผลลัพธ์อยู่ในลำดับจากมากไปน้อย
แบบสอบถามมีดังนี้ −
mysql> เลือก CustomerId จาก OrderByLast2CharactersDemo ORDER BY RIGHT(CustomerId , 2) DESC;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+-----------+| รหัสลูกค้า |+-----------+| Bob-99 || John-98 || Carol-91 || David-67 |+------------+4 แถวในชุด (0.00 วินาที)