将重音字母添加到mysql中

时间:2013-09-16 06:17:55

标签: collation

我已经将我的表的排序设置为utf8_unicode_ci,因此当人们进行搜索时,例如,在MONÃEE上,他们也会受到MONAE和MONÁE的攻击。工作正常。

我的脚本首先将数据输入到表中。

剧本基本如何运作......

它通过迭代php对象数组并将数据转储到mysql中的唯一列中来创建mysql中的记录。然后它需要从mysql获取刚刚创建的记录的id(和数据)(或者如果已经存在匹配记录的id),在php对象数组中找到该数据,并将mysql id粘贴到数组中匹配的对象,以便在脚本中进一步解析。

示例成功输入...

为简单起见,假设php数组只有一条记录:

DAVID

大卫进入mysql(之前没有),我们发现创建的mysql id是7。

我们通过php数组搜索DAVID,并插入7作为它的ID键。然后继续成功完成需要完成的任何解析。

示例问题输入...

再次,处理一条记录......

MONÁE

(请注意,具有不同重音的MONÃEE在mysql中是非常的)...

问题1:MONÁE没有进入唯一列,我认为因为整理将MONÁE和MONÃE视为相等。

问题2 当我的php然后在mysql中搜索MONÁE的id时,MONÜE的id和数据MONÃE将被返回,这再次归功于我认为的整理。

问题3 php现在在php数组中搜索MONÃE,但找不到它(因为MONÁE就在那里)

mysql id没有插入到数组中,其余的解析失败了。

我花了三天时间试图解决1和2.如何解决这个问题?

干杯!!

1 个答案:

答案 0 :(得分:1)

您必须修改表格结构:

alter table tablename alter column colname collate utf8_bin. 

这将解决您的问题,但请注意在应用之前这将对排序产生影响。