我有一个问题:
select first_name from users where user_id=1
UNION
SELECT IF(SUBSTRING user(),1,4) = 'root',SLEEP(5),1);
每当我运行它时,我都会收到以下错误:
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near 'user(),1,4) = 'root',SLEEP(5),1)' at line 1
我的目的是测试用户是否是root用户。
SUBSTRING user(),1,4)
表示:从位置1开始,得到四个字符(基本上是root)。如果数据库用户是root,则暂停5秒。
但是SLEEP(5),1)
除了指示暂停指定的5秒之外它意味着什么?
非常感谢
答案 0 :(得分:1)
正确的罪孽是:
IF(SUBSTRING(user(),1,4) = 'root',SLEEP(5),1)
你错过了(
。也许你也可以用这个:
IF(user() like "root%", SLEEP(5), 1).
Sleep(n)暂停执行查询n秒。我发现它并不真正有用......但它可以做到。