我一直在尝试基于匹配信息在表/列之间传输数据的不同方法。我已经在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。