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

Làm cách nào để sắp xếp các cột số varchar theo DESC hoặc ASC trong MySQL?

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

mysql> create table DemoTable726 (Value varchar(100));
Query OK, 0 rows affected (0.60 sec)

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

mysql> insert into DemoTable726 values('100');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable726 values('10');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable726 values('110');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable726 values('2000');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable726 values('1000');
Query OK, 1 row affected (0.14 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 DemoTable726;

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

+-------+
| Value |
+-------+
| 100   |
| 10    |
| 110   |
| 2000  |
| 1000  |
+-------+
5 rows in set (0.00 sec)

Sau đây là truy vấn để sắp xếp các cột số varchar theo thứ tự tăng dần -

mysql> select *from DemoTable726 order by CAST(Value AS DECIMAL(20,2));

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

+-------+
| Value |
+-------+
| 10    |
| 100   |
| 110   |
| 1000  |
| 2000  |
+-------+
5 rows in set (0.00 sec)

Sau đây là truy vấn để sắp xếp và hiển thị kết quả theo thứ tự giảm dần -

mysql> select *from DemoTable726 order by CAST(Value AS DECIMAL(20,2)) DESC;

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

+-------+
| Value |
+-------+
| 2000  |
| 1000  |
| 110   |
| 100   |
| 10    |
+-------+
5 rows in set (0.00 sec)