У нас есть база данных, в которой есть несколько записей с некоторыми неверными данными в одном столбце, в которых встроенный редактор избежал некоторых вещей, которые не должны были быть исключены, и он разрывает сгенерированные ссылки.
Я хочу выполнить запрос, чтобы заменить плохие символы во всех записях, но не могу понять, как это сделать. Я нашел в replace()
функцию в MySQL, но как я могу использовать его в запросе?
Например, какой будет правильный синтаксис, если я захочу заменить строку <
на фактическую угловую скобку меньше ( <
) во всех записях <
в articleItem
столбце? Это может быть сделано в одном запросе (т.е. выбрать и заменить все одним махом), или мне нужно сделать несколько запросов? Даже если это несколько запросов, как я могу использовать replace()
для замены значения поля в более чем одной записи?
Ответы:
На очень общем уровне
В вашем случае вы говорите, что они сбежали, но так как вы не указываете, как они сбежали, скажем, они сбежали в
GREATERTHAN
Поскольку ваш запрос фактически будет работать внутри строки, ваше
WHERE
предложение, выполняющее сопоставление с образцом, вряд ли улучшит какую-либо производительность - на самом деле он будет генерировать больше работы для сервера. Если у вас нет другого члена предложения WHERE, который улучшит выполнение этого запроса, вы можете просто сделать следующее обновление:Вы также можете вкладывать несколько
REPLACE
звонковВы также можете сделать это при выборе данных (в отличие от сохранения).
Так что вместо:
SELECT MyURLString From MyTable
Вы могли бы сделать
SELECT REPLACE (MyURLString, 'GREATERTHAN', '>') as MyURLString From MyTable
источник
источник
<
с. Вам нужно использовать кодировку &, вот так:&
:)Проверь это
Например, с образцом строки:
EG с именем столбца / поля:
источник
Вы можете написать хранимую процедуру следующим образом:
Таким образом, вы имеете модульный контроль над таблицей.
Вы также можете обобщить хранимую процедуру, делая ее параметрической с таблицей, чтобы дезинфицировать входной параметр
источник
Это поможет вам.
Результат:
источник