Computer >> Máy Tính >  >> Lập trình >> MySQL

Thứ tự theo giá trị số từ các bản ghi chuỗi được phân tách bằng các số như CSE 15, CSE 11, v.v.?

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable1969
   (
   BranchCode varchar(20)
   );
Query OK, 0 rows affected (0.00 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable1969 values('CSE 101');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1969 values('CSE 11');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1969 values('CSE 15');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1969 values('CSE 6');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1969 values('CSE 201');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1969 values('CSE 110');
Query OK, 1 row affected (0.00 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select * from DemoTable1969;

Điều này sẽ tạo ra kết quả sau -

+------------+
| BranchCode |
+------------+
| CSE 101    |
| CSE 11     |
| CSE 15     |
| CSE 6      |
| CSE 201    |
| CSE 110    |
+------------+
6 rows in set (0.00 sec)

Đây là truy vấn để sắp xếp thứ tự theo giá trị số từ các bản ghi chuỗi được phân tách bằng số -

mysql> select * from DemoTable1969
   order by CAST(SUBSTRING(BranchCode,LOCATE(' ',BranchCode)+1) AS SIGNED) DESC;

Điều này sẽ tạo ra kết quả sau -

+------------+
| BranchCode |
+------------+
| CSE 201    |
| CSE 110    |
| CSE 101    |
| CSE 15     |
| CSE 11     |
| CSE 6      |
+------------+
6 rows in set (0.00 sec)