Qual é o propósito de usar WHERE 1 = 1 em instruções SQL? [duplicado]
Duplicatas Possíveis:
Por que uma consulta sql teria "onde 1 = 1"
Por que alguém usaria WHERE 1 = 1 AND <conditions> em uma cláusula SQL?
Eu vi isso muito em diferentes exemplos de consulta e vai provavelmente para todos os mecanismos SQL.
Se houver uma consulta sem condições definidas, as pessoas (e especialmente as estruturas ORM) adicionarão condições sempre verdadeirasWHERE 1 = 1
ou algo assim.
Então, ao invés de
SELECT id, name FROM users;
eles usam
SELECT id, name FROM users WHERE 1 = 1;
A única razão possível que eu poderia pensar se você está adicionando condições dinamicamente você não precisa se preocupar em descascar a inicialAND
mas ainda muitas vezes isso1 = 1
condição é removida se houver uma condição real na consulta.
Exemplo real do CakePHP (gerado pelo framework):
(sem condições)
SELECT `User`.`id`, `User`.`login`
FROM `users` AS `User` WHERE 1 = 1
ORDER BY `User`.`id` ASC;
(com condição)
SELECT `User`.`id`, `User`.`login`
FROM `users` AS `User`
WHERE `User`.`login` = '[email protected]'
LIMIT 1;
Existe alguma razão para adicionar essa condição extra?