列之间传输数据非法混合排序错误

时间:2017-10-14 23:31:24

标签: mysql collation transfer

我一直在尝试基于匹配信息在表/列之间传输数据的不同方法。我已经在StackOverflow上尝试了几个选项,如果我尝试COLLATE utf8_unicode_ci;数据库挂起,我需要重新启动。如果我不使用COLLATE utf8_unicode_ci;我收到一条错误消息。

以下是表格结构的示例:正如您所看到的,我需要根据.city_title和.city之间的匹配,使用User中的数据更新geo_city

geo DB

city_id | State_id | country_id | City_title 
--------------------------------------------
1234    :  567     :  890       :   New york
4321    :  765     :  098       :   Atlanta

............................................

User DB

city_id | State_id | country_id | city 
-------------------------------------------
0       : 0        : 0          : New york
0       : 0        : 0          : Atlanta


City is (utf8_general_ci)
city_title is (utf8_unicode_ci)

MySQL正在抛出以下错误:

MySQL said: Documentation
#1267 - Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='

以下是我使用的代码:

UPDATE
    user,
    geo_city
SET
    user.city_id = geo_city.city_id
WHERE
    user.city = geo_city.city_title 

*更新:我已将两个表都设置为utf8_unicode_ci。我不再收到错误消息。现在唯一的问题是,MySQL挂起,我得到超时。我已经更新了最大执行时间,但仍然得到504。

0 个答案:

没有答案