Pochopení rozdílu mezi whereBetween, whereBetweenColumnsa whereValueBetween v systému Laravel
Při práci s nástrojem Laravel pro tvorbu dotazů budete často potřebovat filtrovat data na základě rozsahů. Laravel nabízí tři různé metody, jak to řešit: whereBetween, whereBetweenColumnsa whereValueBetween. I když znějí podobně, slouží k různým účelům a generují různé dotazy SQL.
V tomto příspěvku rozebereme rozdíly, ukážeme si příklady a podíváme se, jak se jednotlivé metody projevují v hrubém jazyce SQL.
1. whereBetween
Na stránkách whereBetween metoda zkontroluje, zda je hodnota sloupce spadá mezi dvě pevné hodnoty.
Příklad
$users = DB::table('users') ->whereBetween('votes', [1, 100]) ->get();
Překlad SQL
select * from `users` where `votes` between 1 and 100;
✅ Použijte, pokud chcete filtrovat sloupec proti dvě konstantní hodnoty.
2. whereBetweenColumns
Na stránkách whereBetweenColumns metoda zkontroluje, zda je hodnota sloupce spadá mezi hodnoty dva další sloupce ve stejné řadě.
Příklad
$patients = DB::table('patients') ->whereBetweenColumns('weight', ['minimum_allowed_weight', 'maximum_allowed_weight']) ->get();
Překlad SQL
select * from `patients`where `weight` between `minimum_allowed_weight` and `maximum_allowed_weight`;
✅ Tuto funkci použijte, pokud chcete porovnat sloupec se sloupcem. dva další sloupce hodnot ve stejné řadě.
3. whereValueBetween
Na stránkách whereValueBetween metoda zkontroluje, zda je daná hodnota spadá mezi hodnoty dva sloupce ve stejné řadě.
Příklad
$products = DB::table('products') ->whereValueBetween(100, ['min_price', 'max_price']) ->get();
Překlad SQL
select * from `products`where 100 between `min_price` and `max_price`;
✅ Tuto funkci použijte, pokud chcete zkontrolovat, zda je pevná hodnota se vejde mezi dvě hodnoty sloupců.
Rychlé srovnání
| Metoda | Jaké je srovnání | Příklad případu použití |
|---|---|---|
whereBetween |
Sloupec vs. dvě pevné hodnoty | Najít uživatele s hlasy v rozmezí 1 až 100 |
whereBetweenColumns |
Sloupec vs. dva další sloupce | Vyhledejte pacienty, jejichž hmotnost je v rozmezí |
whereValueBetween |
Pevná hodnota vs. dva sloupce hodnot | Vyhledat produkty, u nichž cena 100 odpovídá rozsahu |
Závěr
- Použijte
whereBetweenpři porovnávání sloupce s pevnými hodnotami. - Použijte
whereBetweenColumnspři porovnávání sloupce se dvěma jinými sloupci. - Použijte
whereValueBetweenpři porovnávání pevné hodnoty se dvěma hodnotami sloupce.
Každá metoda je vhodná pro konkrétní scénáře a znalost rozdílů vám pomůže psát přesnější a efektivnější dotazy v Laravelu.