В моей базе данных есть несколько путей к файлам, в какой-то момент мне нужно обновить часть пути. Как работать со специальными символами для ex. с \ruba
на \rubla
при обновлении данных.
\r
это специальный символ
\rubla
поступает из входного параметра C# в SQL-запрос
SQL:
update table
set Location = CONCAT('gabiluca.at.gmail.com\folder',
substring(Location, length('gabiluca.at.gmail.com\director') + 1))
where Location like 'gabiluca.at.gmail.com\\\\folder%'
\\\\
переводится как \
Простой случай:
В таблице mysql у вас есть относительный путь Windows, хранящийся в столбце с именем Location.
Id Name Location
38 MuseScore 3.lnk gabiluca.at.gmail.com
39 redenumit gabiluca.at.gmail.com
40 interior gabiluca.at.gmail.com\redenumit
41 FileZilla Client.lnk gabiluca.at.gmail.com\redenumit
42 MuseScore 3.lnk gabiluca.at.gmail.com\redenumit\interior
Теперь попробуйте обновить: 'redenumit' в mysql с оператором обновления для всех записей. Доза это работает? Сохраняйте префикс. Подумайте об этом, например, когда вы переименовываете папку «redenumit» в «changed».
Я даже не могу сделать такой запрос (в этом проблема):
select *
from MediaResource
where Location like 'gabiluca.at.gmail.com\redenumit%'
не могли бы вы обновить, что вы пытаетесь сделать в своем запросе? например, значение «a» для значения «b»
@ZoharPeled да, но для mysql
@sabharikarthik я обновил свой вопрос. Если внутренняя папка переименована, мне нужно обновить относительные пути в моей базе данных.
Можете ли вы попробовать эту команду:
УСТАНОВИТЕ sql_mode = NO_BACKSLASH_ESCAPES;
и сброс:
УСТАНОВИТЬ sql_mode = '';
всякий раз, когда выполняется обработка?
УСТАНОВИТЬ sql_mode = NO_BACKSLASH_ESCAPES; выберите * из MediaResource, где местоположение, например «gabiluca.at.gmail.com\redenumit%», НЕ РАБОТАЕТ ..
Нет, это не так
Нет реальной проблемы при обновлении, но больше о предложении where для обновления или выбора
Давайте продолжим это обсуждение здесь: чат.stackoverflow.com/rooms/191603/…
Оказывается, это путь.. У меня была небольшая ошибка, из-за которой не было результатов в наборе запросов.
Спасибо за разъяснения :).
Вы ищете дословные строковые литералы?