MySQL where 子句奇怪 returns 所有行
MySQL where clause strangely returns all rows
有人在我的网站上尝试 SQL 注入。 He/she 没有成功,但是 he/she 尝试的东西引起了我的注意。
这个 where 子句 return 所有行,我不知道为什么会这样。
SELECT * FROM MyTable WHERE MyColumn=''=''
我在 MySQL 和 MariaDB 中尝试了这个语句,它们都 returned 所有行。这个语句不应该抛出语法错误吗?为什么 return 所有行?
想象一下这个查询:
select * from MyTable where false='';
然后,把你的分成:
SELECT * FROM MyTable WHERE (MyColumn='')=''
有人在我的网站上尝试 SQL 注入。 He/she 没有成功,但是 he/she 尝试的东西引起了我的注意。
这个 where 子句 return 所有行,我不知道为什么会这样。
SELECT * FROM MyTable WHERE MyColumn=''=''
我在 MySQL 和 MariaDB 中尝试了这个语句,它们都 returned 所有行。这个语句不应该抛出语法错误吗?为什么 return 所有行?
想象一下这个查询:
select * from MyTable where false='';
然后,把你的分成:
SELECT * FROM MyTable WHERE (MyColumn='')=''