The whereBetween
query method is used to retrieve records where a specified column’s value falls within a given range. This method is particularly useful when you need to filter database records based on a range of values, such as dates, numeric values, or even alphanumeric values. Here’s how you can use whereBetween
in Laravel 11:
- Basic Usage: The
whereBetween
method requires three parameters: the column name, the lower bound of the range, and the upper bound of the range. For example, suppose you have acreated_at
column in yourposts
table, and you want to retrieve posts created between two dates:
$posts = DB::table('posts')
->whereBetween('created_at', ['2022-01-01', '2022-12-31'])
->get();
This query will retrieve all posts created between January 1, 2022, and December 31, 2022.
- Numeric Ranges:
whereBetween
can also be used with numeric columns. For example, if you have aprice
column in yourproducts
table, and you want to retrieve products with prices between $10 and $50:
$products = DB::table('products')
->whereBetween('price', [10, 50])
->get();
This query will retrieve all products with prices between $10 and $50.
- Chaining Methods: You can chain
whereBetween
with other query builder methods to further refine your query. For example, you can combinewhereBetween
withwhere
to add additional conditions:
$posts = DB::table('posts')
->where('status', 'published')
->whereBetween('created_at', ['2022-01-01', '2022-12-31'])
->get();
This query will retrieve published posts created between January 1, 2022, and December 31, 2022.
- Dynamic Range: You can also use variables or dynamic values for the range boundaries. For example, if you have variables
$start_date
and$end_date
containing the start and end dates, respectively:
$posts = DB::table('posts')
->whereBetween('created_at', [$start_date, $end_date])
->get();
This query will retrieve posts created between the values stored in $start_date
and $end_date
.
By using the whereBetween
method in Laravel 11, you can efficiently filter database records based on a specified range, whether it’s dates, numeric values, or other types of data, providing flexibility and precision in querying your database.