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

Sắp xếp cột VARCHAR dưới dạng FLOAT bằng cách sử dụng toán tử CAST không hoạt động trong MySQL?

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ẠN 

Bạ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)