2012-01-16 43 views
1

我有一个本地项目,我正在处理的是哪里有id,titleprice字段。“按价格排序”在MySQL中返回一个奇怪的订单

实例信息:

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"); 

我在做什么错?

+0

您能否提供用于查看的真实数据和代码?我怀疑这是问题,而不是查询。 – Jivings 2012-01-16 23:31:39

+3

“Price”列的数据类型是什么?如果可能的话,请发布'SHOW COLUMNS FROM <问题表格';' – zrvan 2012-01-16 23:31:48

+0

我猜测列'price'(在MySQL数据库中)是一个'varchar'或'text'。尝试将其更改为“int”或其他。 – sooper 2012-01-16 23:33:12

回答

8

您的price列必须具有字符CHAR() or VARCHAR()而不是数字类型。投它作为一个ORDER BYDECIMAL

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

真正的修复程序,这将是对price数据类型更改为正确的数值类型。