Możliwe duplikaty:
Why would a sql query have “where 1 = 1”
Why would someone use WHERE 1=1 AND <conditions> in a SQL clause?Jaki jest cel użycia WHERE 1 = 1 w instrukcjach SQL?
Widziałem, że wiele różnych przykładów zapytań i idzie do prawdopodobnie wszystkie silniki SQL.
Jeśli istnieje zapytanie, które nie ma zdefiniowanych warunków, ludzie (i specjalnie ORMowe frameworki) często dodają zawsze prawdziwy warunek WHERE 1 = 1
lub coś w tym stylu.
Więc zamiast
SELECT id, name FROM users;
używają
SELECT id, name FROM users WHERE 1 = 1;
Jedynym możliwym powodem mogę myśleć, jeśli dodajesz warunki dynamicznie nie trzeba się martwić o odpędzenie początkową AND
ale wciąż dość często ten warunek 1 = 1
jest usuwany, jeśli w zapytaniu występuje rzeczywisty stan.
Rzeczywisty przykład z CakePHP (generowane przez ramy):
(brak warunków)
SELECT `User`.`id`, `User`.`login`
FROM `users` AS `User` WHERE 1 = 1
ORDER BY `User`.`id` ASC;
(warunku)
SELECT `User`.`id`, `User`.`login`
FROM `users` AS `User`
WHERE `User`.`login` = '[email protected]'
LIMIT 1;
Czy jest jakiś powód, dodając, że dodatkowym warunkiem?
Dupek z http://stackoverflow.com/questions/517107/why-would-a-sql-query-have-where-1-1 między innymi –