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

Thứ tự chữ và số theo MySQL cho các chuỗi được trộn với số

Giả sử bạn có một cột VARCHAR trong bảng với các giá trị là các chuỗi và các số nằm ở phía bên phải. Ví dụ -

John1023
Carol9871
David9098

Bây giờ, hãy xem bạn muốn sắp xếp thứ tự trên cơ sở các số bên phải này trong toàn bộ cột. Đối với điều này, hãy sử dụng ĐẶT HÀNG THEO QUYỀN.

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

mysql> create table DemoTable757 (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   ClientId varchar(100)
);
Query OK, 0 rows affected (0.53 sec)

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

mysql> insert into DemoTable757(ClientId) values('John1023');
Query OK, 1 row affected (0.41 sec)
mysql> insert into DemoTable757(ClientId) values('Carol9871');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable757(ClientId) values('David9098');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable757(ClientId) values('Adam9989');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable757(ClientId) values('Bob9789');
Query OK, 1 row affected (0.20 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 DemoTable757;

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

+----+-----------+
| Id | ClientId  |
+----+-----------+
|  1 | John1023  |
|  2 | Carol9871 |
|  3 | David9098 |
|  4 | Adam9989  |
|  5 | Bob9789   |
+----+-----------+
5 rows in set (0.00 sec)

Sau đây là truy vấn cho thứ tự chữ và số trong MySQL -

mysql> select Id,ClientId from DemoTable757 order by right(ClientId,4);

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

+----+-----------+
| Id | ClientId  |
+----+-----------+
|  1 | John1023  |
|  3 | David9098 |
|  5 | Bob9789   |
|  2 | Carol9871 |
|  4 | Adam9989  |
+----+-----------+
5 rows in set (0.00 sec)