ホームページ  >  記事  >  バックエンド開発  >  MySQL の WHERE 句でスラッシュ (/) をクエリするにはどうすればよいですか?

MySQL の WHERE 句でスラッシュ (/) をクエリするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 03:06:02285ブラウズ

How to Query for Forward Slashes (/) in MySQL's WHERE Clause?

MySQL でのスラッシュ () のクエリ

MySQL の WHERE 句でスラッシュ () のクエリを実行すると、2 つの異なるシナリオが発生します。 : 等号 (=) 演算子を使用する場合と LIKE 演算子を使用する場合。

= 演算子のエスケープ

= 演算子の場合、追加のエスケープはありません。必須。 MySQL は、比較される値の整合性を維持するために、それを自動的にエスケープします。クエリ例では、(SELECT * FROM Titles where title = 'test') は、期待どおり、タイトル 'test' のレコードを返します。

LIKE 演算子のエスケープ

対照的に、LIKE 演算子はエスケープ用の特殊文字として解釈されるため、スラッシュ () を二重にエスケープする必要があります。 LIKE 句で単一を検索するには、代わりにそれを指定する必要があります。これは、MySQL がバックスラッシュを 2 回削除するためです。1 回目は解析中、もう 1 回はパターン マッチング中にです。

クエリ例では、(SELECT * FROM タイトル where title LIKE 'test\') は、タイトル 'test' のレコードを返します。 '、二重バックスラッシュ () が処理中の除去を補うためです。

エスケープ文字の変更

必要に応じて、次のようにして LIKE のエスケープ文字をカスタマイズできます。 ESCAPE キーワードを使用します。たとえば、次のように指定できます。

SELECT * FROM `titles` WHERE title LIKE 'test\' ESCAPE '|'

この場合、パイプ (|) は、デフォルトのバックスラッシュ () の代わりにエスケープ文字として機能します。これにより、二度エスケープすることなく LIKE クエリで使用できるようになります。

以上がMySQL の WHERE 句でスラッシュ (/) をクエリするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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