重複の可能性:
SQL クエリに「where 1 = 1」があるの
はなぜですか? SQL 句で WHERE 1=1 AND <条件> を使用するのはなぜですか?
さまざまなクエリの例でそれをたくさん見てきましたが、おそらくすべての SQL エンジンに当てはまります。
条件が定義されていないクエリがある場合、人々 (および特に ORM フレームワーク) は、常に true 条件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` = 'me@example.com'
LIMIT 1;
その余分な条件を追加する理由はありますか?