ダブルエスケープされたデータベースのエントリを修正しようとしています。mysql_real_escape_string が使用されている間、magic_quotes がオンになっていると思います。二重エスケープにより、一部の検索結果が正しくない/見つからないことがありました。
私は magic_quotes をオフにして、バックスラッシュでエントリを検索し、それらを更新して二重エスケープを削除することを計画しています。問題は、バックスラッシュを含むエントリを検索するクエリを実行すると、常に結果が得られないことです。
SELECT title FROM exampletable WHERE title LIKE '%\\\\%'
ここで推奨されているように、「%\\\\%」を使用しています: http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like
すべてのタイトルを出力すると、それらの多くに不要なバックスラッシュが含まれているため、そこにあることがわかります。クエリでそれらを分離することはできないようです。
Example Data:
Old King\'s Road
Running Down A Dream
Can\'t Stop The Sun
This One's For Me
繰り返しますが、\ を含むエントリを返そうとしています。
編集: MySQL のバージョンは 5.0.92-community です。照合順序は latin1_swedish_ci です。文字セットは UTF-8 Unicode です
%\\% 動作しません。私はもう試した。mysql.com では正しくないと記載されています。
「\」を検索するには、「\\\\」と指定します。これは、バックスラッシュがパーサーによって 1 回削除され、パターン マッチが行われたときに再び削除されるためです。