Tech Verse Logo
Enable dark mode
Laravel: whereBetween vs whereBetweenColumns vs whereValueBetween

Laravel: whereBetween vs whereBetweenColumns vs whereValueBetween

Tech Verse Daily

Tech Verse Daily

4 min read

When working with Laravel's query builder, you’ll often need to filter data based on ranges. Laravel provides three powerful methods to handle this: whereBetween, whereBetweenColumns, and whereValueBetween. While they look similar, each serves a different purpose and generates different SQL queries.

In this post, we’ll break down the differences, show practical examples, and look at how each method translates into raw SQL.

1. whereBetween

The whereBetween method checks if a column’s value falls between two fixed values.

Example:

$users = DB::table('users')
->whereBetween('votes', [1, 100])
->get();

SQL Translation:

select * from `users`
where `votes` between 1 and 100;

Use this when you want to filter a column against two constant values.

2. whereBetweenColumns

The whereBetweenColumns method checks if a column’s value falls between the values of two other columns in the same row.

Example:

$patients = DB::table('patients')
->whereBetweenColumns('weight', ['minimum_allowed_weight', 'maximum_allowed_weight'])
->get();

SQL Translation:

select * from `patients`
where `weight` between `minimum_allowed_weight` and `maximum_allowed_weight`;

Use this when you want to compare a column to two other column values in the same row.

3. whereValueBetween

The whereValueBetween method checks if a fixed value falls between the values of two columns in the same row.

Example:

$products = DB::table('products')
->whereValueBetween(100, ['min_price', 'max_price'])
->get();

SQL Translation:

select * from `products`
where 100 between `min_price` and `max_price`;

Use this when you want to check if a fixed value fits between two column values.

Conclusion

  • Use whereBetween when comparing a column to fixed values.

  • Use whereBetweenColumns when comparing a column to two other columns.

  • Use whereValueBetween when comparing a fixed value against two column values.

Each method is suited for specific scenarios, and knowing the difference will help you write more precise and efficient queries in Laravel.