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