ホームページ >データベース >mysql チュートリアル >SQL クエリでアンパサンドを適切にエスケープするにはどうすればよいですか?
SQL クエリでのアンパサンドの処理
データベースにクエリを実行する場合、検索条件内でアンパサンド (&) を正しくエスケープすることが重要です。 フィールド名にアンパサンドを含むデータを取得しようとすると、一般的な問題が発生します。
たとえば、次のように直接使用します。
<code class="language-sql">node_name = 'Geometric Vectors \& Matrices'</code>
は失敗する可能性があります。 より信頼性の高い方法には、アンパサンドに ASCII コードを使用することが含まれます:
<code class="language-sql">node_name = 'Geometric Vectors ' || chr(38) || ' Matrices'</code>
ここで、chr(38)
はアンパサンド文字を表し、リテラル文字列値として扱われるようにします。このアプローチは効果的であることが証明されています。
別のオプションでは、LIKE
演算子とワイルドカードを使用します。
<code class="language-sql">node_name LIKE 'Geometric Vectors _ Matrices'</code>
これにより、アンパサンドがアンダースコア (_) に置き換えられ、任意の 1 文字に一致するワイルドカードとして機能します。 別のレコードのその位置に異なる文字がある場合、誤検知が発生する可能性がありますが、通常はその可能性は低いです。
以上がSQL クエリでアンパサンドを適切にエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。