mögliche Dubletten:
Why would a sql query have “where 1 = 1”
Why would someone use WHERE 1=1 AND <conditions> in a SQL clause?Welchen Zweck hat WHERE 1 = 1 in SQL-Anweisungen?
Ich habe gesehen, dass viele in verschiedenen Abfragebeispiele und es geht wahrscheinlich alle SQL-Motoren.
Wenn es eine Abfrage gibt, die keine Bedingungen hat, definieren Personen (und speziell ORM-Frameworks) oft immer-wahr-Bedingung WHERE 1 = 1
oder so ähnlich.
Also statt
SELECT id, name FROM users;
sie verwenden
SELECT id, name FROM users WHERE 1 = 1;
Der einzig mögliche Grund, warum ich denken konnte, wenn Sie Bedingungen hinzufügen, dynamisch Sie müssen nicht über Abstreifen des anfänglichen AND
zur Sorge, aber Diese Bedingung 1 = 1
wird immer noch häufig entfernt, wenn eine tatsächliche Bedingung in der Abfrage vorhanden ist.
Actual Beispiel von CakePHP (durch Rahmen generiert):
(keine Bedingungen)
SELECT `User`.`id`, `User`.`login`
FROM `users` AS `User` WHERE 1 = 1
ORDER BY `User`.`id` ASC;
(mit Bedingung)
SELECT `User`.`id`, `User`.`login`
FROM `users` AS `User`
WHERE `User`.`login` = '[email protected].com'
LIMIT 1;
Gibt es einen Grund für die zusätzliche Bedingung hinzuzufügen?
Dupe von http://stackoverflow.com/questions/517107/why-would-a-sql-query-have-where-1-1 unter anderem –