Php laravel的OrderBy不';我点错菜了

Php laravel的OrderBy不';我点错菜了,php,mysql,laravel,Php,Mysql,Laravel,我有一个名为products的sql表,我想按从低到高的价格订购,反之亦然 我有这个密码 $ts = Product::where('category_id',4)->where('status',5)->orderby('price','asc')->get(); foreach($ts as $t){ echo 'price => ' . $t->price.'<br>'; } 如果在订单列中看到10

我有一个名为products的sql表,我想按从低到高的价格订购,反之亦然

我有这个密码

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

如果在订单列中看到
10
3
之前,那么它是按文本而不是数字排序的

SQL是关于结构化数据的,因此在创建表时,请确保它们属于与数据相关的类型。日期是
date
datetime
等。数字可以是
int
decimal
float
等。如果不这样做,不仅排序困难,而且比较也困难。所有SQL Server都能很好地执行与正确存储的数据相关的操作


如果有疑问,请检查可用的。

也许价格列是用string/VARCHAR类型创建的?是的,兄弟,这就是原因吗?是的。。。它是按文本排序的,而不是按数值排序的。将列的类型更改为decimal,它应该可以工作。
price => 10.00
price => 10.00
price => 3.00
price => 3.00
price => 3.00
price => 3.00
price => 4.00
price => 4.00