Какова цель использования WHERE 1 = 1 в операторах SQL? [Дубликат]
Возможные дубликаты:
Почему SQL-запрос имеет «где 1 = 1 ”
Зачем кому-то использовать ГДЕ 1 = 1 И <условия> в предложении SQL? I '
Мы видели это много в различных примерах запросов, и это относится, вероятно, ко всем механизмам SQL.
Если есть запрос, для которого не определены условия, люди (и особенно платформы ORM) часто добавляют условие «всегда истинно»WHERE 1 = 1
или что-то типа того.
Так что вместо
SELECT id, name FROM users;
они используют
SELECT id, name FROM users WHERE 1 = 1;
Единственная возможная причина, о которой я мог подумать, если вы добавляете условия динамически, вы нене нужно беспокоиться о снятии начальногоAND
но все же довольно часто это1 = 1
условие удаляется, если в запросе есть фактическое условие.
Фактический пример из CakePHP (генерируется фреймворком):
(без условий)
SELECT `User`.`id`, `User`.`login`
FROM `users` AS `User` WHERE 1 = 1
ORDER BY `User`.`id` ASC;
(с условием)
SELECT `User`.`id`, `User`.`login`
FROM `users` AS `User`
WHERE `User`.`login` = '[email protected]'
LIMIT 1;
Есть ли причина для добавления этого дополнительного условия?