0

我已经将我的表的排序规则设置为 utf8_unicode_ci,这样当人们进行搜索时,例如,在 MONÃE 上,他们也会在 MONAE 和 MONÁE 上获得命中。工作正常。

我的脚本首先将数据输入表中存在问题。

脚本基本上是如何工作的......

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

成功进入示例...

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

大卫

David 进入了 mysql(以前没有),我们发现创建的 mysql id 是 7。

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

示例问题条目...

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

梦妮

(请注意,带有不同口音的MONÃE已经在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。关于如何解决这个问题的任何想法?

干杯!!

4

1 回答 1

1

您必须修改表结构:

alter table tablename alter column colname collate utf8_bin. 

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

于 2013-09-16T06:43:43.210 回答