При insert into table_name(name) value('ivan\');
возникает ошибка, так как бэкслэш экранирует одинарную кавычку. Вопрос. Как избавиться от этого бэкслеша и сделать запись, как будто этого бэкслэша и не было вовсе?
Функция REPLACE() не помогает... Пробовал так REPLACE('ivan\', '\', '') и так REPLACE('ivan\', '\\', '').
Или как, например, заменить в тексте все бэкслеши (чтобы не допустить экранирований) на прямые слеши? ps. Приложение пишет в базу не напрямую, а через мою хранимую функцию. При вызове функции с параметром 'ivan\' происходит ошибка (синтаксис). Без бэкслэша на конце все отлично пишется. К приложению у меня доступа нет.
Проблему нужно решить ИСКЛЮЧИТЕЛЬНО средствами MySQL. pps. Как вариант, можно читать строку в бинарном виде и если увидели байт бекслэша, то менять его на байт слэша или любую другую строку. Но это просто бред какой-то. Наверняка есть способ решения намного проще и естественнее.
Иван Мельников, то есть в MySQL приходит кривой запрос, который не компилируется вообще.
Могу предложить написать прокси для подключения к БД и правке таких запросов на лету.