Почему «SELECT ... WHERE id = 1 = 0» возвращает все строки, кроме одной с id = 1? - PullRequest
0 голосов
/ 23 января 2019

Почему следующий запрос:

SELECT * FROM myTable WHERE id=1=0

возвращает все строки из myTable, кроме той, которая имеет id=1?

myTable содержимое:

+----+-------+
| id | value |
+----+-------+
| 1  | dog   |
| 2  | cat   |
| 3  | parrot|
+----+-------+

Теперь запустите: SELECT * FROM myTable WHERE id=1=0

Вывод:

+----+-------+
| id | value |
+----+-------+
| 2  | cat   |
| 3  | parrot|
+----+-------+

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Причина в том, что логика должна оцениваться как:

WHERE (id = 1) = 0

Это эквивалентно:

WHERE (id = 1) "is false"

Или:

WHERE id <> 1

Попробуйтезапустив эти примеры:

select 1=1=0, 1=2=3, 1=1=0
0 голосов
/ 23 января 2019

Приоритет оператора по умолчанию работает следующим образом:

WHERE (ID=1)=0

Что приводит к значению false в случае id=1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...