列类型为文本时,如何获取列的最小值?

时间:2019-06-26 06:10:29

标签: php laravel

我有一个名为价格的列,具有表被调用产品的文本类型 最小方法无效:

Product::min('price')

价格栏如下 5000 , 90 , 70

“我希望Min的输出为70,但实际输出为5000”

我认为因为价格列是文本类型

3 个答案:

答案 0 :(得分:2)

对于投射,您可以在$casts模型中使用laravel模型成员Product

protected $casts = [
   'price' => 'integer' // or float as per your values
];

然后检查Product::min("price")的值。

如果您想通过查询来获取

$temp = Product::selectRaw("MIN(CAST(price AS UNSIGNED)) as price")->first();
echo $temp->price;

答案 1 :(得分:1)

您可以使用类型转换执行直接SQL查询

$results = DB::select('select MIN(CAST(price AS SIGNED)) from tablename');

答案 2 :(得分:1)

仅使用min函数,min函数将返回最小值。

public function __construct($url, User $user)
    {
        $this->user = $user;
        $this->verifyUrl = $url;
    }