";按价格订购”;在MySQL中返回一个奇怪的顺序


"Order by price" returns a weird order in MySQL

我有一个仅用于本地的项目,我正在处理该项目,其中有一个包含idtitleprice字段的表。

示例信息:

ID || Title || Price
1 - Title 1 - 8.00
2 - Title 2 - 75.00
3 - Title 3 - 70.00

当我尝试ORDER BY price时,它会像这样返回:

8.00
75.00
70.00

声明:

$query = mysql_query("Select * From table ORDER BY price DESC");

我做错了什么?

您的price列必须具有字符CHAR() or VARCHAR()类型,而不是数字类型。在ORDER BY:中将其铸造为DECIMAL

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

真正的解决方法是将price数据类型更改为正确的数字类型。