php - "Order by price"在 MySQL 中返回一个奇怪的顺序

标签 php 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() 或 VARCHAR() 类型,而不是数字类型。在 ORDER BY 中将其转换为 DECIMAL:

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

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

关于php - "Order by price"在 MySQL 中返回一个奇怪的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8887760/

相关文章:

php - 使用 php 更新 mysql 中的信息

MySQL 选择 MAIN-ID 的第一个 SUB-ID

php - 导入 Windows Live 联系人

mysql - 搭建一个小商店网站,为图片设置ID

mysql - 什么时候应该使用 MySQL TEXT 字段而不是文件?

mysql - "org.hibernate.ObjectNotFoundException: No row with the given identifier exists"但它确实存在

java - datepicker不要在jsp中打开日历

php - 在php中搜索非好友用户

php - 在 Symfony 内核初始化上运行代码

php - MySQL PHP PDO 获取列中值为 Yes 的所有用户