2012-01-03 5 views
4

У меня возникли проблемы с обновлением joomla от 1.0 до 1.5 (мне нужно пройти весь путь до 1.7;).Как заменить одиночный символ в больших таблицах MySQL

Во всяком случае, у моего клиента есть старая установка joomla 1.0, а сайт - это hudge и на хорватском языке. Это означает, что мне приходится иметь дело с такими персонажами, как Č, č, Ć, ć, Đ, đ ... Старая база данных находится в latin1_swedish_ci сопоставлении, и я перенес ее с помощью скрипта переноса в новую базу данных joomla 1.5, которая находится в utf8_general_ci.

Это привело (как и ожидалось), в какой-то характер путаницы, так, например: ć стал е, е -> Č и т.д. ...

Преобразование 1.0 базы данных в utf8 сортировки не вариант, т.к. он отсекает остальную часть контента на первое появление C, C, диджей, диджей и т.д. ...

Итак, что я делал это запрос:

update jos_content 
    set introtext = replace(introtext, 'È', 'Č'); 

Что это делает получить таблица содержания joomla и во всех вводных текстах заменяет È на Č.

Я сделал это за титулы, как хорошо, но когда я пытаюсь сделать это с полнотекстовым, я получаю эту ошибку:

Error 
SQL query: 

UPDATE jos_content SET FULLTEXT = REPLACE(introtext, 'È', 'Č') ; 


MySQL said: 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'fulltext = replace(introtext, 'È', 'Č')' at line 2 

SO, это какое-то вопрос памяти (поскольку это полный текст в конце концов), или я просто делаю что-то неправильно. Кроме того, если есть лучший способ заменить все эти символы, пожалуйста, скажите мне, вот что я понял из MySQL «нечитаемой» документации.

+0

отметить также ошибку копирования (?): SET \ '\' полнотекстового = ЗАМЕНИТЬ (\ 'полнотекстового \', ... –

ответ

6

FULLTEXT является reserved word в mysql и должен быть экранирован обратными тиками (`), если имя вашего столбца имеет то же имя.

UPDATE jos_content SET `FULLTEXT` = REPLACE(introtext, 'È', 'Č'); 
+1

LOL, спасибо, я совсем забыл, что полнотекстового резервируется слово. – Jinx

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