Laravel中的OrderBy无法正确排序

时间:2020-08-25 21:37:08

标签: php mysql laravel

我有一个称为产品的sql表,我想按价格从低到高的顺序订购,反之亦然

我有这个代码

$ts = Product::where('category_id',4)->where('status',5)->orderby('price','asc')->get();
    
     foreach($ts as $t){
         echo 'price => ' . $t->price.'<br>';
     }

我正在打印结果以从低到高的价格订购[ASC]

我能得到的是什么

price => 10.00
price => 10.00
price => 3.00
price => 3.00
price => 3.00
price => 3.00
price => 4.00
price => 4.00

10以升序排列在3之前如何变成

1 个答案:

答案 0 :(得分:1)

如果您在订单列中的10之前看到3,则其顺序是文本而不是数字。

SQL与结构化数据有关,因此在创建表时,请确保它们属于与数据相关的类型。日期是datedatetime等。数字是intdecimalfloat等。如果您不这样做,不仅订购会很困难,而且比较。所有SQL Server在与正确存储的数据有关的操作上都做得很好。

如有疑问,请检查可用的manual on datatypes