フィールド image_filename を持つ images というテーブルがあります。保存された一部の画像のファイル拡張子の後に文字があり、これらが正しく読み込まれないことに気付きました。ファイル名が image.jpg だとすると、これは問題なく無視できますが、ファイル名が image.jpg%3fhf43h408 の場合は、この画像を削除する必要があります。これは、これまでのところ、拡張機能の後にあるものを含むすべての画像を選択しようとする私のクエリです:
SELECT `images`.* FROM images
WHERE `images`.`image_filename` LIKE '%.jpg\%'
これは、拡張子の後に何もない場合でも、すべての画像を返します。拡張子の後に何かがある画像のみを返すクエリを取得するにはどうすればよいですか。さらに混乱を招くために、拡張子の後のものが常にパーセント記号で始まるように見えるため、ワイルドカードではなく文字通りのパーセント記号として扱われるようにクエリでエスケープしようとしています。私も次のことを試しました:
SELECT `images`.* FROM images
WHERE `images`.`image_filename` LIKE '%.jpg\%' escape '\'
しかし、これは機能せず、エラーがあると表示されるだけです