22

我想做这样的事情:

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+'%']);

?

4

4 回答 4

34

在格式字符串中使用另一个 %:

SQL.Text := Format('select foo from bar where baz like ''%s%%''',[SearchTerm]);
于 2008-11-06T02:44:33.993 回答
7

%%,IIRC。

于 2008-11-06T02:40:56.030 回答
4

强制性:http: //xkcd.com/327/ :-)

根据上下文,您的方法可能容易受到 SQL 注入的影响。如果搜索词来自用户输入,那么使用参数化查询或至少尝试清理输入可能会更好。

于 2008-11-06T10:27:54.370 回答
1

添加 2 个百分号以获得 1 个单 %
示例:

 Format('select foo from bar where baz like ''%%%s%%'',[SearchString])

给你

select foo from bar where baz like '%SearchString%'
于 2013-09-23T10:19:09.217 回答