我有一个称为产品的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之前如何变成
答案 0 :(得分:1)
如果您在订单列中的10
之前看到3
,则其顺序是文本而不是数字。
SQL与结构化数据有关,因此在创建表时,请确保它们属于与数据相关的类型。日期是date
或datetime
等。数字是int
,decimal
,float
等。如果您不这样做,不仅订购会很困难,而且比较。所有SQL Server在与正确存储的数据有关的操作上都做得很好。
如有疑问,请检查可用的manual on datatypes。