HTF Asked: 2014-03-26 08:25:56 +0800 CST2014-03-26 08:25:56 +0800 CST 2014-03-26 08:25:56 +0800 CST MySQL:睡眠注入 772 我想知道是否有人可以帮助理解这个查询,基本上我知道SLEEP()函数,但我以前从未见过这个实现。为什么没有返回任何结果? mysql> SELECT fname, lname FROM contacts WHERE fname = 'test' / SLEEP(1) / ''; Empty set, 14 warnings (7.00 sec) 警告: Warning | 1292 | Truncated incorrect DOUBLE value: 'test' ... mysql 1 个回答 Voted Best Answer mdoyle 2014-03-26T11:23:13+08:002014-03-26T11:23:13+08:00 没有返回任何结果,因为不出所料,没有满足 WHERE 子句条件的记录。 SLEEP()将返回 0(如果未被中断),并且所有操作数都将转换为除法运算的双精度数(因此会出现有关截断不正确的双精度数的警告)。本质上,查询与 SELECT fname, lname FROM contacts WHERE fname = 0 / 0 / 0; 除以零结果为 null,因此您基本上是在查找记录 where fname = NULL,这绝不是真的。
没有返回任何结果,因为不出所料,没有满足 WHERE 子句条件的记录。
SLEEP()
将返回 0(如果未被中断),并且所有操作数都将转换为除法运算的双精度数(因此会出现有关截断不正确的双精度数的警告)。本质上,查询与除以零结果为 null,因此您基本上是在查找记录 where
fname = NULL
,这绝不是真的。