Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Sắp xếp cột VARCHAR như FLOAT: CAST không hoạt động trong MySQL?

Nếu CAST không hoạt động, dùng yourColumnName*1 với ORDER BY.

Cách 1: Nhân 1

SELECT yourColumnName1,yourColumnName2,...N FROM yourTableName ORDER BY yourColumnName*1 DESC;

Cách 2: Dùng CAST()

SELECT yourColumnName1,yourColumnName2,...N FROM yourTableName ORDER BY CAST(yourColumnName as DECIMAL(8,2)) DESC;

Demo: Bảng VarcharColumnAsFloatDemo cột Amount (VARCHAR).

Sắp xếp bằng CAST:

mysql> select Id,Amount from VarcharColumnAsFloatDemo order by cast(Amount as DECIMAL(8,2)) DESC;

Sắp xếp bằng Amount*1:

mysql> select Id,Amount from VarcharColumnAsFloatDemo order by Amount*1 desc;

Cả hai cho cùng kết quả sắp xếp số đúng: 6465.99, 6465.78, 6464.98, 3745.76, 3446.23, 2464.46, 645.90.