我有一个SQL查询,它由一个非常有限的内部框架参数化.查询如下所示:
Select * from somewhere
where name IN (:parameter);
Run Code Online (Sandbox Code Playgroud)
代码将零到多个字符串注入到由:parameter指定的位置.":parameter"标志只能在"IN"子句中使用(因此无法在where子句之后移动以有条件地插入"name IN")部分.
有时用户会将参数设置为:
'狗猫'
其他时候,用户不会将任何值放入:参数变量.这会导致问题,因为生成的SQL查询将是:
Select * from somewhere
where name IN ();
Run Code Online (Sandbox Code Playgroud)
我的代码可以捕获参数为空的情况,但我需要一些我可以注入IN语句的东西,它保证永远不会匹配实际的字符串.
是否有任何我可以注入的SQL正则表达式,它永远不会匹配任何字符串?像%.%或类似东西....
谢谢!