Nếu truyền của bạn không hoạt động, thì bạn có thể sử dụng YourColumnName * 1 với mệnh đề ORDER BY.
Sử dụng yourColumnName * 1. Cú pháp như sau:
CHỌN yourColumnName1, yourColumnName2, ... N TỪ LỆNH CỦA yourTableName THEO MÔ TẢ CỦA BẠNBạn cũng có thể sử dụng toán tử CAST (). Cú pháp như sau:
CHỌN yourColumnName1, yourColumnName2, ... N TỪ LỆNH CỦA BẠNTableName BẰNG CAST (yourColumnName as DECIMAL (8,2)) DESC;Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau:
mysql> tạo bảng VarcharColumnAsFloatDemo -> (-> Id int NOT NULL AUTO_INCREMENT, -> Amount varchar (20), -> PRIMARY KEY (Id) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (1,01 giây)Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau:
mysql> chèn vào giá trị VarcharColumnAsFloatDemo (Số tiền) ('3446.23'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,10 giây) mysql> chèn vào giá trị VarcharColumnAsFloatDemo (Số tiền) ('2464.46'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,16 giây) mysql> chèn vào giá trị VarcharColumnAsFloatDemo (Số tiền) ('6465,78'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,13 giây) mysql> chèn vào giá trị VarcharColumnAsFloatDemo (Số tiền) ('6464,98'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,44 giây) mysql> chèn vào giá trị VarcharColumnAsFloatDemo (Số tiền) ('645,90'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,19 giây) mysql> chèn vào giá trị VarcharColumnAsFloatDemo (Số tiền) ('6465,99'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,23 giây) mysql> chèn vào giá trị VarcharColumnAsFloatDemo (Số tiền) ('3745,76'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,14 giây)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 * từ VarcharColumnAsFloatDemo;Sau đây là kết quả:
+ ---- + --------- + | Id | Số lượng | + ---- + --------- + | 1 | 3446,23 || 2 | 2464.46 || 3 | 6465,78 || 4 | 6464,98 || 5 | 645,90 || 6 | 6465,99 || 7 | 3745,76 | + ---- + --------- + 7 hàng trong bộ (0,00 giây)Đây là truy vấn để sắp xếp varchar dưới dạng float bằng cách sử dụng toán tử ép kiểu:
mysql> chọn Id, Số lượng từ thứ tự VarcharColumnAsFloatDemo theo kiểu ép kiểu (Số lượng là DECIMAL (8,2)) DESC;Sau đây là kết quả:
+ ---- + --------- + | Id | Số lượng | + ---- + --------- + | 6 | 6465,99 || 3 | 6465,78 || 4 | 6464,98 || 7 | 3745,76 || 1 | 3446,23 || 2 | 2464.46 || 5 | 645,90 | + ---- + --------- + 7 hàng trong bộ (0,00 giây)Cách tiếp cận thứ hai như sau bằng cách sử dụng yourColumnName * 1:
mysql> chọn Id, Số lượng từ thứ tự VarcharColumnAsFloatDemo theo Số lượng * 1 desc;Sau đây là kết quả:
+ ---- + --------- + | Id | Số lượng | + ---- + --------- + | 6 | 6465,99 || 3 | 6465,78 || 4 | 6464,98 || 7 | 3745,76 || 1 | 3446,23 || 2 | 2464.46 || 5 | 645,90 | + ---- + --------- + 7 hàng trong bộ (0,00 giây)