update table1 inner join on table2
set table1.col1 = table2.col2
UPDATE iptable INNER JOIN city ON city.CityName = myfunction(iptable.CityName)
SET iptable.cityno = city.CityNO
上面 iptable 1k条数据, city 20k条数据 本本上花了13min算好, 主要是myfunction()字符串处理花了好长时间。
表中插入一列用来算myfunction()结果会快些, 然join匹配会每次计算。
ALTER TABLE iptable ADD ShortCityName VARCHAR(200);