我有这个问题。我可以看到like
的一些问题。
你们可以看看这个查询并帮我优化吗?我非常感谢你花时间在这里支持我。
UPDATE F_State
SET StateName = L.State_Name
FROM Reg.Location L
JOIN F_State S ON CONVERT(nvarchar, L.stateID) = s.StateCode --BECAUSE THIS IS NVARCHAR and ststeid isnt
WHERE S.StateName LIKE '%)%'
AND L.ZIPCODE = S.ZIPCODE
AND L.CITY=S.CITY
我有大约300,000行要更新....这根本没有帮助。你能帮我解决一下吗?再次感谢你们!
答案 0 :(得分:0)
如果你在oracle上,你可以使用基于函数的索引与INSTR(insted LIKE'%)'),这将解决你的问题。
但在您的情况下,LIKE'%..%'问题无关紧要。
我无法看到,你在做什么,但我想你正在尝试使用Location.State_name设置包含'%)%'的F_State.StateName。发现Appropriete位置的stateID与F_State中的StateCode相同(wtf,真的吗?一个是非变量ID,一个是varchar ...但是okey)nad相同的ZipCode和同一个City。
UPDATE F_State S
SET S.StateName = (SELECT State_Name
FROM Reg.Location L
WHERE CONVERT(nvarchar, L.stateID) = s.StateCode
AND L.ZipCode = S.ZipCode
AND L.City = S.City
LIMIT 1)
WHERE S.StateName LIKE '%)%';