通过php mysql从低到高,从高到低排序

时间:2017-05-25 02:37:32

标签: 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 

1 个答案:

答案 0 :(得分:0)

您的价格列正在“不自然地排序”有关详细信息,请参阅此link

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

如果您有特定于项目的原因导致无法更改表列的类型,那么您可以在ORDER BY子句中CAST price列。

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