Bạn có thể sử dụng ORDER BY SUBSTRING () để sắp xếp theo một phần nhất định của chuỗi trong MySQL. Đầu tiên chúng ta hãy tạo một bảng:
mysql> create table DemoTable (UserId varchar(200)); Query OK, 0 rows affected (0.68 sec)
Sau đây là truy vấn để chèn bản ghi trong bảng bằng cách sử dụng lệnh insert:
mysql> insert into DemoTable values('USER_1234'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values('USER_John'); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values('USER_Sam'); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable values('USER_Carol'); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values('USER_Bob'); Query OK, 1 row affected (0.14 sec)
Sau đây là truy vấn để hiển thị các bản ghi từ bảng bằng lệnh select:
mysql> select *from DemoTable;
Điều này sẽ tạo ra kết quả sau:
+------------+ | UserId | +------------+ | USER_1234 | | USER_John | | USER_Sam | | USER_Carol | | USER_Bob | +------------+ 5 rows in set (0.00 sec)
Trường hợp 1: Khi bạn muốn ĐẶT HÀNG THEO một phần của chuỗi theo thứ tự tăng dần.
Sau đây là truy vấn. Ở đây, chúng ta sẽ đặt một phần nhất định của chuỗi sau ký tự thứ 4:
mysql> select *from DemoTable order by substring(UserId,4) asc;
Điều này sẽ tạo ra kết quả sau
+------------+ | UserId | +------------+ | USER_1234 | | USER_Bob | | USER_Carol | | USER_John | | USER_Sam | +------------+ 5 rows in set (0.00 sec)
Trường hợp 2: Khi bạn muốn ĐẶT HÀNG THEO một phần của chuỗi theo thứ tự giảm dần. Sau đây là truy vấn:
mysql> select *from DemoTable order by substring(UserId,4) desc;
Điều này sẽ tạo ra kết quả sau. Ở đây, chúng ta sẽ đặt một phần nhất định của chuỗi sau ký tự thứ 4:
+------------+ | UserId | +------------+ | USER_Sam | | USER_John | | USER_Carol | | USER_Bob | | USER_1234 | +------------+ 5 rows in set (0.00 sec)