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

เรียงลำดับตามส่วนท้ายของสตริงด้วย RIGHT() ใน MySQL

ใช้ RIGHT(คอลัมน์, จำนวนตัวอักษร) ใน ORDER BY เพื่อเรียงตามส่วนท้ายของค่า

สร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (UserId VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES
    ('User1234'), ('User9874'), ('User9994'), ('User1211'), ('User1012');

ดูข้อมูลเดิม

mysql> SELECT * FROM DemoTable;
+----------+
| UserId   |
+----------+
| User1234 |
| User9874 |
| User9994 |
| User1211 |
| User1012 |
+----------+

กรณี 1: เรียงน้อยไปมาก ตาม 4 ตัวสุดท้าย

mysql> SELECT * FROM DemoTable ORDER BY RIGHT(UserId, 4);
+----------+
| UserId   |
+----------+
| User1012 |
| User1211 |
| User1234 |
| User9874 |
| User9994 |
+----------+

กรณี 2: เรียงมากไปน้อย ตาม 4 ตัวสุดท้าย

mysql> SELECT * FROM DemoTable ORDER BY RIGHT(UserId, 4) DESC;
+----------+
| UserId   |
+----------+
| User9994 |
| User9874 |
| User1234 |
| User1211 |
| User1012 |
+----------+

ประยุกต์: เรียงตามรหัสไปรษณีย์ 5 หลัก, เลขท้ายบัตรประชาชน, หรือรหัสสินค้าที่มี prefix เดียวกัน