Jaki jest cel używania WHERE 1 = 1 w instrukcjach SQL? [duplikować]
Możliwe duplikaty:
Dlaczego zapytanie sql miałoby „gdzie 1 = 1”
Dlaczego ktoś miałby używać WHERE 1 = 1 AND <conditions> w klauzuli SQL?
Widziałem to bardzo często w różnych przykładach zapytań i prawdopodobnie dotyczy to wszystkich silników SQL.
Jeśli istnieje zapytanie, które nie ma warunków, zdefiniowane osoby (a zwłaszcza struktury ORM) często dodają zawsze prawdziwy warunekWHERE 1 = 1
czy jakoś tak.
Więc zamiast
SELECT id, name FROM users;
oni używają
SELECT id, name FROM users WHERE 1 = 1;
Jedynym możliwym powodem, dla którego mógłbym pomyśleć, jeśli dodajesz warunki dynamicznie, nie musisz się martwić o pozbycie się początkowegoAND
ale wciąż dość często to1 = 1
warunek jest usuwany, jeśli w zapytaniu występuje warunek rzeczywisty.
Rzeczywisty przykład z CakePHP (generowany przez framework):
(bez warunków)
SELECT `User`.`id`, `User`.`login`
FROM `users` AS `User` WHERE 1 = 1
ORDER BY `User`.`id` ASC;
(z warunkiem)
SELECT `User`.`id`, `User`.`login`
FROM `users` AS `User`
WHERE `User`.`login` = '[email protected]'
LIMIT 1;
Czy jest jakiś powód, aby dodać ten dodatkowy warunek?