有两张表
订单表(30万条数据)
id cityCode address buildingName
1 1001 番禺幸福花园2栋301
2 1003 佛山幸福公馆1栋502楼盘表(14个城市近2万条数据)
cityCode buildingName
1001 幸福花园
1003 幸福公馆相同城市下,如果订单表中的address 中包含楼盘表中buildingName 那么更新订单表中的 buildingName,
目前使用 自带的 charindex函数效率很慢,连接后数据量很恐怖请问有什么好的方法来解决
订单表(30万条数据)
id cityCode address buildingName
1 1001 番禺幸福花园2栋301
2 1003 佛山幸福公馆1栋502楼盘表(14个城市近2万条数据)
cityCode buildingName
1001 幸福花园
1003 幸福公馆相同城市下,如果订单表中的address 中包含楼盘表中buildingName 那么更新订单表中的 buildingName,
目前使用 自带的 charindex函数效率很慢,连接后数据量很恐怖请问有什么好的方法来解决
使用cityCode关联更新即可,不需要使用charindex:
update a set a.buildingName=b.buildingName
from 订单表 as a
join 楼盘表 as b
on a.cityCode=b.cityCode
update a set a.buildingName=b.buildingName
from 订单表 as a
join 楼盘表 as b
on a.cityCode=b.cityCode AN
from 订单表 as a
join 楼盘表 as b
on a.cityCode=b.cityCode AND a.address LIKE '%'+b.buildingName+'%'试试LIKE的速度
UPDATE 订单表
SET buildingName = (SELECT MAX(buildingName)
FROM 楼盘表
WHERE cityCode = 订单表.cityCode
AND CHARINDEX(buildingName,订单表.address) <> 0)
WHERE id BETWEEN 1 AND 100