我将joomla从1.0升级到1.5时遇到了一些问题(我必须一直到1.7;)。
无论如何,我的客户端有一个旧的joomla 1.0安装程序,该网站是用克罗地亚语进行的。这意味着我必须处理像Č,č,Ć,ć,Đ,đ这样的人物...旧数据库在latin1_swedish_ci校对中,我已经将它与迁移脚本一起转移到了utf8_general_ci中的joomla 1.5的新数据库。
导致(如预期的那样)某些字符混淆,例如: ć成为è,È - > Č等......
将1.0数据库转换为utf8排序规则不是一种选择,因为它会在第一次出现Č,ć,đ,đ等时切断剩余的内容......
所以,我正在做的是这个查询:
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
那么,这是某种内存问题(因为这毕竟是全文)或者我只是做错了。另外,如果有更好的方法来替换所有这些字符请告诉我,这是我从MySQL“不可读”的文档中找到的。
答案 0 :(得分:6)
FULLTEXT
是mysql中的reserved word,如果您的列名具有相同的名称,则需要通过后面的刻度(`)进行转义。
UPDATE jos_content SET `FULLTEXT` = REPLACE(introtext, 'È', 'Č');