我有这个代码:
$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/