teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

加筆修正

2018/02/28 12:20

投稿

退会済みユーザー
answer CHANGED
@@ -1,9 +1,11 @@
1
1
  OR演算子よりもAND演算子のほうが優先度が高いため、
2
+ AND演算子で結合されている方を先に評価します。
2
3
  ID = 'ABCDEF' AND Pass = ''
3
4
  の結果がFALSEだとしても
4
5
  ORで結合される
5
6
  1 =1
7
+ がTRUEなので
6
- がTRUEなので成立してしまう、
8
+ ORは一方がTRUEなら結果TRUEなので成立してしまう、
7
9
  っていう話です。
8
10
 
9
11
  詳しくは、例えば

1

加筆修正

2018/02/28 12:20

投稿

退会済みユーザー
answer CHANGED
@@ -4,4 +4,10 @@
4
4
  ORで結合される
5
5
  1 =1
6
6
  がTRUEなので成立してしまう、
7
- っていう話です。
7
+ っていう話です。
8
+
9
+ 詳しくは、例えば
10
+ [MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.3.1 演算子の優先順位](https://dev.mysql.com/doc/refman/5.6/ja/operator-precedence.html)
11
+ [4.2. 評価式](https://www.postgresql.jp/document/9.6/html/sql-expressions.html#syntax-express-eval)
12
+ [SQL演算子](http://otndnld.oracle.co.jp/document/products/lite10g/10.2.0/html/B19286-02/sqopr.htm)
13
+ など各処理系での優先順位・評価順位に関する記述も併せてお読みください。