Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

สั่งซื้อโดย 3 ตัวอักษรสุดท้ายใน MySQL?


คุณสามารถใช้ฟังก์ชัน ORDER BY RIGHT() เพื่อสั่งซื้อ 3 ตัวอักษรสุดท้ายใน MySQL ไวยากรณ์มีดังนี้ −

เลือก *จาก yourTableNameORDER BY RIGHT(yourColumnName,3) yourSortingOrder;

เพียงแทนที่ 'yourSortingOrder' เป็น ASC หรือ DESC เพื่อตั้งค่าลำดับจากน้อยไปมากหรือมากไปหาน้อยตามลำดับ

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง OrderByLast3Chars -> ( -> EmployeeId int ไม่ใช่ NULL AUTO_INCREMENT, -> EmployeeName varchar(20), -> EmployeeAge int, -> PRIMARY KEY(EmployeeId) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ ( 0.56 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงใน OrderByLast3Chars(EmployeeName,EmployeeAge) values('Carol_901',24);Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงใน OrderByLast3Chars(EmployeeName,EmployeeAge) values('Bob_101',21);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงใน OrderByLast3Chars (EmployeeName,EmployeeAge) ค่า ('Sam_107',22); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงใน OrderByLast3Chars (EmployeeName,EmployeeAge) ค่า ('Mile_677',26); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงใน OrderByLast3Chars (EmployeeName,EmployeeAge) ค่า ('John_978',27); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.75 วินาที) mysql> แทรกลงใน OrderByLast3Chars(EmployeeName,EmployeeAge) values('David_876',29);Query OK, 1 แถวได้รับผลกระทบ (0.28 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก OrderByLast3Chars;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------------+--------------+-----------+| รหัสพนักงาน | ชื่อพนักงาน | อายุพนักงาน |+------------+--------------+-----------+| 1 | Carol_901 | 24 || 2 | Bob_101 | 21 || 3 | Sam_107 | 22 || 4 | Mile_677 | 26 || 5 | John_978 | 27 || 6 | David_876 | 29 |+------------+--------------+-------------+6 แถวในชุด ( 0.00 วินาที)

นี่คือข้อความค้นหาที่ต้องสั่งซื้อ 3 ตัวอักษรล่าสุด

กรณีที่ 1 − รับผลลัพธ์ตามลำดับจากน้อยไปมาก

แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก OrderByLast3Chars -> สั่งซื้อโดย RIGHT(EmployeeName,3) asc;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------------+--------------+-----------+| รหัสพนักงาน | ชื่อพนักงาน | อายุพนักงาน |+------------+--------------+-----------+| 1 | Carol_901 | 24 || 2 | Bob_101 | 21 || 3 | Sam_107 | 22 || 4 | Mile_677 | 26 || 5 | John_978 | 27 || 6 | David_876 | 29 |+------------+--------------+-------------+6 แถวในชุด ( 0.00 วินาที)

กรณีที่ 2 - รับผลในลำดับจากมากไปน้อย แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก OrderByLast3Chars -> สั่งซื้อโดย RIGHT(EmployeeName,3) desc;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------------+--------------+-----------+| รหัสพนักงาน | ชื่อพนักงาน | อายุพนักงาน |+------------+--------------+-----------+| 5 | John_978 | 27 || 1 | Carol_901 | 24 || 6 | David_876 | 29 || 4 | Mile_677 | 26 || 3 | Sam_107 | 22 || 2 | Bob_101 | 21 |+------------+--------------+-------------+6 แถวในชุด ( 0.00 วินาที)