ホームページ >データベース >mysql チュートリアル >MySQL LIKE クエリでアンダースコアをエスケープするにはどうすればよいですか?

MySQL LIKE クエリでアンダースコアをエスケープするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-20 19:47:09369ブラウズ

How to Escape Underscores in MySQL LIKE Queries?

アンダースコアを使用した MySQL LIKE クエリ

SQL では、LIKE 演算子を使用して文字列内のパターンを検索できます。ただし、アンダースコア (_) を使用して LIKE を使用する場合は、特別な考慮が必要です。

問題

LIKE を使用してアンダースコアを含む文字列を検索する場合、アンダースコアはワイルドカードとして扱われます。これは、次のクエリ:

SELECT id FROM images WHERE img_path LIKE 'abc_%'

は、'images' テーブル内の 'img_path' 列が "abc" で始まるすべての行を返します (アンダースコアのある行 (例: "abcde_1.jpg") を含む) を意味します。 ).

解決策

特殊文字をエスケープし、LIKE 演算子が「abc_」で始まる文字列のみに一致するようにするには、バックスラッシュ () でアンダースコアをエスケープする必要があります。正しいクエリは次のとおりです。

SELECT id FROM images WHERE img_path LIKE 'abc\_%'

説明

アンダースコアをエスケープすることにより、LIKE 演算子はそれをリテラル文字として扱います。これを一致させるには、「img_path」列が「abc_」で始まる必要があります。結果として、行 1 と行 2 のみが返されます。

以上がMySQL LIKE クエリでアンダースコアをエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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