我有两张表如下。
表:城市
city_id city_name state_id 1 Cachar 1 2 Darrang 1 3 Nicobar 1
表2:地点
pincode Address city 110020 loni Nicobar 110021 debru Cachar 110024 rogar Cachar 110023 akura Nicobar在表城市,我有1430行,包含印度的不同城市。 在表格位置,每个城市包含大约100个密码。
我想做什么? : 我想替换表中的每个城市(列):locality及其对应的city_id in table:city。
问题:我该怎么做?这有什么快捷的方法吗?我不想使用任何编程语言,即php或java。是否有任何程序,在Mysql中循环?
结果应如下所示:
表2:地点
pincode Address city 110020 loni 3 110021 debru 1 110024 rogar 1 110023 akura 3
答案 0 :(得分:0)
您可以按照以下步骤操作:
在整数类型的位置表中添加临时列。
ALTER TABLE locality ADD temp_column INT;
运行以下查询以更新相应的城市ID 位置表。
UPDATE locality
INNER JOIN city ON city.city_name = locality.city
SET locality.temp_column = city.city_id;
将列城市放在位置表中。
ALTER TABLE locality DROP COLUMN city;
现在将临时列的列重命名为“city”
ALTER TABLE locality CHANGE COLUMN temp_column city INT(11) NOT NULL;
答案 1 :(得分:0)
你可以试试这个。
UPDATE locality JOIN city ON locality.City = city.city_name SET locality.City = city.city_id