Để sắp xếp số chuỗi, hãy sử dụng hàm CAST () từ MySQL. Cú pháp như sau -
SELECT *FROM yourTableName ORDER BY (yourColumnName as Decimal(integerValue,integerValueAfterDecimalPoint)) desc;
Để hiểu cú pháp trên, trước tiên chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -
mysql> create table SortingStringDemo -> ( -> Amount varchar(10) -> ); Query OK, 0 rows affected (0.91 sec)
Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau.
mysql> insert into SortingStringDemo values('12.34'); Query OK, 1 row affected (0.21 sec) mysql> insert into SortingStringDemo values('124.50'); Query OK, 1 row affected (0.56 sec) mysql> insert into SortingStringDemo values('9.59'); Query OK, 1 row affected (0.20 sec) mysql> insert into SortingStringDemo values('150.68'); Query OK, 1 row affected (0.17 sec) mysql> insert into SortingStringDemo values('600.54'); Query OK, 1 row affected (0.11 sec)
Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau.
mysql> select *from SortingStringDemo;
Sau đây là kết quả.
+--------+ | Amount | +--------+ | 12.34 | | 124.50 | | 9.59 | | 150.68 | | 600.54 | +--------+ 5 rows in set (0.00 sec)
Đây là truy vấn để sắp xếp số chuỗi theo thứ tự giảm dần.
mysql> select *from SortingStringDemo order by cast(Amount as Decimal(6,2)) desc;
Sau đây là kết quả.
+--------+ | Amount | +--------+ | 600.54 | | 150.68 | | 124.50 | | 12.34 | | 9.59 | +--------+ 5 rows in set (0.00 sec)