有一个有趣的错误——对我来说——。
请按照我执行的查询。
一切正常。
mysql> select hex(current_user());
Result : 726F6F74406C6F63616C686F7374
一切正常。
mysql> select substring(hex(current_user()),1,15);
Result : 726F6F74406C6F6
我将空字符串添加到子字符串方法的第二个和第三个参数。一切正常。
mysql> select substring(hex(current_user()),''+1,''+15);
Result : 726F6F74406C6F6
当我将空字符串添加到子字符串的第一个参数时.. 只返回 726.:S 我期待我最新查询的相同结果。
mysql> select substring(hex(current_user())+'',1,15);
Result : 726
mysql> select substring(hex(current_user())+'',2,15);
Result : 26
mysql> select substring(hex(current_user())+'',3,15);
Result : 6
mysql> select substring(hex(current_user())+'',4,15);
Result : NULL
我用 Mysql 5.0.95 和 5.1.61 测试过,同样的问题..!我用中间函数而不是子字符串测试了相同的查询..再次相同。
任何的想法 ?我正在研究某种 Web 应用程序防火墙规则绕过,我意识到了那个错误。