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

MYSQL如何将货币价值从便宜到更贵进行排序?,mysql,sorting,currency,Mysql,Sorting,Currency,我花了好几个小时试图弄清楚如何将专栏的价格从便宜到更贵进行分类 我使用十进制(5,2) 值如下所示: 20.99 15.99 10.15 9.20 我使用CONCAT在每个值的前面插入$。结果是这样的 $10.15 $15.99 $20.99 $9.20 结果是: $9.20 $10.15 $15.99 $20.99 对于排序,您必须使用orderby子句 要从低到高排序,请尝试以下操作: SELECT CONCAT("$",CAST(price AS CHAR)) AS currency

我花了好几个小时试图弄清楚如何将专栏的价格从便宜到更贵进行分类

我使用
十进制(5,2)

值如下所示:

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

$10.15
$15.99
$20.99
$9.20
结果是:

$9.20
$10.15
$15.99
$20.99

对于排序,您必须使用
orderby
子句

要从低到高排序,请尝试以下操作:

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

不要按concat排序,因为它将按字母数字值而不是数字进行排序。

使用
order by Price DESC
,其中
DESC
是降序,如果要升序,则使用
ASC

您的Price列必须具有字符CHAR()或VARCHAR()类型而不是数字类型。按顺序将其转换为十进制:

Select * From table ORDER BY CAST(price AS DECIMAL(10,2)) DESC

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

您尝试了什么?请提及您的查询
Select * From table ORDER BY CAST(price AS DECIMAL(10,2)) DESC