Какова цель использования WHERE 1 = 1 в операторах SQL? [Дубликат]
Possible Duplicates:
Why would a sql query have “where 1 = 1”
Why would someone use WHERE 1=1 AND <conditions> in a SQL clause?
Я видел это много в разных примерах запросов, и это относится, вероятно, ко всем механизмам 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;
Есть ли причина для добавления этого дополнительного условия?