0

В конкретном столбце мне нужно выполнить замену всех экземпляров «http://%20» на «http: //». Цель состоит в том, чтобы избавиться от объекта% 20 HTML, который обозначает пустое пространство.mysql - заменить строку знаком процента

Я попытался

update content set fulltext = replace(fulltext,'http://%20','http://'); 

, но получаю сообщение об ошибке код # 1064.

содержание - это имя таблицы, а флейтист - столбец.

Я предполагаю, что что-то нужно сделать о знаке процента, поскольку MySQL разбирает в качестве подстановочного знака.

MySQL 5.5.43 на Ubuntu 14.04 LTS.

+3

«полный текст» - это зарезервированное слово. Добавить backticks '' 'вокруг имени поля или использовать другое имя поля –

+1

% - специальный символ. Вы пытались избежать этого? Например: replace (fulltext, '\% 20', ''); – user244255

+1

@Pekka 웃. , , Вы должны добавить свой комментарий в качестве ответа, поэтому OP может его принять. –

ответ

3

fulltext является reserved word.

Добавить кавычку

`fulltext` 

вокруг имени поля или использовать другое имя поля.

+0

Ошибка исчезла. Благодарю. Теперь мне просто нужно найти способ поиска совпадений с помощью подстановочных знаков. update kqju_content set 'fulltext' = replace (' fulltext', '%% 20http%', 'http: //'); не делает трюк. Мысль MySQL проанализировала бы первый% в качестве рабочего шаблона, но это не так. – manchine

+0

@manchine не уверен, что вы ожидаете от первого '%'? 'REPLACE()' должен заменить строку в любом месте, подстановочный знак не нужен, нет? –

+0

не совсем; Я все еще нахожу экземпляры% 20http: // после выполнения запроса. как если бы их синтаксис не соответствовал им. – manchine

Смежные вопросы