Я пытаюсь исправить записи в базе данных, которые были экранированы дважды. Я считаю, что magic_quotes был включен, пока использовался mysql_real_escape_string. Двойное экранирование привело к тому, что некоторые результаты поиска были неверными / отсутствующими.
Я отключил magic_quotes и планирую искать записи с обратной косой чертой и обновлять их, чтобы удалить любые двойные экранирования. Проблема в том, что когда я выполняю запрос для поиска записей с обратной косой чертой, я всегда не получаю результатов.
SELECT title FROM exampletable WHERE title LIKE '%\\\\%'
Я использую '% \\\\%', как рекомендовано здесь: http: //dev.mysql .com / doc / refman / 5.0 / ru / string-compare-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 он указан как неверный:
Для поиска «\» укажите его как «\\\\»; это связано с тем, что синтаксический анализатор удаляет обратную косую черту один раз, а затем - при сопоставлении с шаблоном, в результате чего для сопоставления остается одна обратная косая черта.