回答編集履歴

2

加筆修正

2018/02/28 12:20

投稿

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

1

加筆修正

2018/02/28 12:20

投稿

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