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

%% 、 ちゃんと覚えたら。

于 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 に答える