MySQL睡眠功能的奇怪行为

时间:2017-08-14 00:44:06

标签: mysql sleep

我正在尝试以下MySQL查询:(10.1.19-MariaDB)

 - select 1 rlike(if(0=sleep(1), 0x28, 0x28)) → NULL
       execution time: 1.0001 seconds
 - select 1 rlike(if(0=0, 0x28, 0x28)) → SQL error as expected: 0x28 = "("

为什么MySQL会将第一个表达式计算为NULL?优化是否会导致此类意外行为? 我想首先运行sleep命令,然后比较睡眠函数的结果(如果睡眠函数没有被中断则为零)和0(“0 = 0”→1→true),然后让MySQL生成SQL错误。所以先做“睡觉”,然后做“SQL错误”。 是否有可能通过MySQL睡眠功能实现这一目标? (否则我会使用所谓的“重问题”:http://www.sqlinjection.net/heavy-query/

(注意:这里没有堆叠查询 - 只有子查询)

0 个答案:

没有答案