我想做这样的事情:
SQL.Text := Format('select foo from bar where baz like ''%s%''',[SearchTerm]);
但格式当然不喜欢最后的'%'。那我该怎么逃避呢? \%
? %%
?
或者我必须这样做:
SQL.Text := Format('select foo from bar where baz like ''%s''',[SearchTerm+'%']);
答案 0 :(得分:29)
在格式字符串中使用另一个%:
SQL.Text := Format('select foo from bar where baz like ''%s%%''',[SearchTerm]);
答案 1 :(得分:6)
%%,IIRC。
答案 2 :(得分:4)
强制性: http://xkcd.com/327/ : - )
根据上下文,您的方法可能容易受到SQL注入攻击。如果搜索词来自用户输入,那么使用参数化查询或者至少尝试清理输入可能会更好。
答案 3 :(得分:0)
添加2%的符号以获得1个单% 示例:
Format('select foo from bar where baz like ''%%%s%%'',[SearchString])
给你
select foo from bar where baz like '%SearchString%'