ホームページ >データベース >mysql チュートリアル >SQL クエリでアンパサンドを適切にエスケープするにはどうすればよいですか?

SQL クエリでアンパサンドを適切にエスケープするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-12 18:13:44245ブラウズ

How to Properly Escape Ampersands in SQL Queries?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。