首页 > 解决方案 > 列类型为文本时如何获取列的最小值?

问题描述

我有一个名为 price 的列,其文本类型为 Table Called Products Min Method 不起作用:

Product::min('price')

价格列就像 5000 , 90 , 70

“我预计 Min 的输出是 70,但实际输出是 5000”

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

标签: phplaravel

解决方案


$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;

推荐阅读