php - 通过php mysql从低到高和从高到低排序

标签 php mysql sorting pdo price

我有这个代码:

$mtp->query("SELECT * FROM `shop_small_pro_tbl` order by price ASC");
$records=$mtp->resultset();

foreach($records as $row) {
      $a= $row['price'] ;   
     echo $a;       
}

当我输出价格时,它看起来像这样:

1050000 1290000 1600000 1820000 1910000 2110000 2130000 2360000 2410000 680000 900000 

最佳答案

您的价格列正在“非自然排序”有关更多信息,请参阅此 link .

解决此问题的最佳/永久方法是在数据库中创建 price 列:DECIMAL(10,2)。这假设您实际上将价格值存储到小数点后 2 位;否则,如果值只是整数,则可以使用INT。通过修改数据库表结构,您不必担心在查询时重新转换列类型。

如果您因项目特定原因而无法更改表列的类型,则可以在 ORDER BY 子句中对价格列进行 CAST。

SELECT * FROM `shop_small_pro_tbl` ORDER BY CAST(price AS DECIMAL(10,2))

关于php - 通过php mysql从低到高和从高到低排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44171393/

相关文章:

javascript - 使用 RegEx 查找 HTML 标签之间的内容

php mysql 分组依据

c# - 为 xaml 中的第一列启用 DataGrid 排序

java - 如果值相等,PriorityQueue 排序不会维持字母顺序

c++ - 按顺时针顺序对图邻接列表中的顶点进行排序

javascript - 从 JS 或 PHP 调用 .jar 文件

PHP解码json并显示

php - 在同一张表中加入并使用 IMPLODE 进行 FOREACH 以获取菜单

PHP csv文件在mysql中上传

mysql - 检查用户匹配数组是否作为具有匹配列的链接表中的条目存在