MYSQL 如何将货币价值从便宜到昂贵排序?

MYSQL how to sort money values from cheaper to more expensive?

我苦苦思索了好几个小时,试图找出如何将 PRICE 列从便宜到昂贵排序。

我用decimal(5,2)

值是这样的:

20.99
15.99
10.15
9.20

我使用 CONCAT 在每个值的前面插入 $。结果是这样的

.15
.99
.99
.20

想要的结果是这样的:

.20
.15
.99
.99

要进行排序,您必须使用 ORDER BY 子句。

要从低到高排序试试这个:

SELECT CONCAT("$",CAST(price AS CHAR)) AS currency
FROM tablename
ORDER BY currency
Order by price

不要按连续排序,因为它会按字母数字值而不是数字值排序。

使用 Order by Price DESC 其中 DESC 是降序,如果你想升序使用 ASC

您的价格列必须是字符 CHAR() 或 VARCHAR() 类型,而不是数字类型。在 ORDER BY:

中将其转换为 DECIMAL
Select * From table ORDER BY CAST(price AS DECIMAL(10,2)) DESC

真正的解决方法是将价格数据类型更改为适当的数字类型。