In this article we will learn to use aggregate function min in laravel eloquent and query builder. Laravel itself provide inbuilt method to min
the columns like in MySQL or SQL based database we can do min of columns using min aggregate function.
Min method will give you the most min number across the columns. For example if you have 10 rows and you want the minimum number from a column X then you will get the min number from the 10 rows
Laravel eloquent or query builder min
method do the same as aggregate function. Laravel min accepts one parameter as column name.
Here is the syntax
Model::min(COLUMN_NAME);
//or
Model::select(\DB::raw("min(COLUMN_NAME), other_columns "))->get(); // or first()
//or
\DB::table('table_name')->min(COLUMN_NAME);
//or
\DB::table('table_name')->select(\DB::raw("Min(COLUMN_NAME), other_columns "))->first()
In the above syntax we have used 4 examples to show all possibilities to use min aggregate function in laravel.
First is using the Model and min method of eloquent. Second is Model with select and Db::raw class.
In the third example we have used Query Builder DB class and table function to use min method of it.
And final example is query builder with select and db raw to use min method of MySQL or SQL.
Result of above query will be:
select MIN(column_name) from `table`
//OR
select MIN(column_name), other_columns from `table`
Let’s understand laravel min in eloquent query with example
Example 1 – Laravel min aggregate function query using eloquent min method
So in this example i will use laravel query builder or eloquent min method to do the min of column.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
class ArticleController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$Article = Article::min('like_count');
\\or
DB::table('articles')->min('like_count');
}
}
Output will be :
select min(`like_count`) from `articles`
Example 2 – Laravel min query using raw query
In this example i will use laravel query builder DB::raw
method with select to min the column
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
class ArticleController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$Article = Article::select(\DB::raw('min(like_count), aticles.*'))->get();
\\or
$Article = Article::selectRaw( 'min(like_count), articles.*')->get();
\\OR
DB::table('articles')->select(\DB::raw('min(like_count), articles.*'))->first();
}
}
In the above example we have used articles table and created a model in our laravel application. Then we imported the necessary classes and used the min method.
Output will be :
select min(`like_count`), `aticles`.`*` from `articles`
Also Read : Laravel max in eloquent query with example