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

Truy vấn MySQL để sắp xếp giá trị một phần cột như số trong “John_120“

Đối với điều này, bạn có thể sử dụng SUBSTRING_INDEX () cùng với ORDER BY. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable1502
   -> (
   -> StudentId varchar(40)
   -> );
Query OK, 0 rows affected (0.54 sec)

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

mysql> insert into DemoTable1502 values('John_120');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1502 values('John_201');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1502 values('Mike_178');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1502 values('Bob_198');
Query OK, 1 row affected (0.36 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 DemoTable1502;

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

+-----------+
| StudentId |
+-----------+
| John_120  |
| John_201  |
| Mike_178  |
| Bob_198   |
+-----------+
4 rows in set (0.00 sec)

Sau đây là truy vấn để sắp xếp giá trị một phần trên cột -

mysql> select substring_index(StudentId,'_',1) as LeftPart,
   -> substring_index(StudentId,'_',-1) as RightPart
   -> from DemoTable1502
   -> order by RightPart;

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

+----------+-----------+
| LeftPart | RightPart |
+----------+-----------+
| John     |       120 |
| Mike     |       178 |
| Bob      |       198 |
| John     |       201 |
+----------+-----------+
4 rows in set (0.00 sec)