アンダースコアを使用した 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 サイトの他の関連記事を参照してください。