UPDATE a
SET a.KeyNum=(SELECT COUNT(b.CI_ID) FROM myTab.dbo.CI_SinKey as b
where CONTAINS(b.SearchKey,a.KeyName)
)
from myKey.dbo.SearchKey as a
where KeyNum=0这个是错误的语句,相信大家可以看懂我的业务需求,我再描述一下
两个库:myKey myTab
对应表:SearchKey CI_SinKey
SearchKey 这里出现字段:KeyNum(关键词匹配数据总量) KeyName(关键词)
CI_SinKey 这里出现字段:CI_ID(默认ID) SearchKey(关键词)
业务需求:更新 myKey 库 SearchKey 表 KeyNum为O的记录 的 KeyNum(关键词匹配数据总量)
使 KeyNum=SELECT COUNT(b.CI_ID) FROM myTab.dbo.CI_SinKey as b
where CONTAINS(b.SearchKey,a.KeyName))上面语句提示CONTAINS(b.SearchKey,a.KeyName))中a.KeyName部分出错在线等····急急急~
SET a.KeyNum=(SELECT COUNT(b.CI_ID) FROM myTab.dbo.CI_SinKey as b
where CONTAINS(b.SearchKey,a.KeyName)
)
from myKey.dbo.SearchKey as a
where KeyNum=0这个是错误的语句,相信大家可以看懂我的业务需求,我再描述一下
两个库:myKey myTab
对应表:SearchKey CI_SinKey
SearchKey 这里出现字段:KeyNum(关键词匹配数据总量) KeyName(关键词)
CI_SinKey 这里出现字段:CI_ID(默认ID) SearchKey(关键词)
业务需求:更新 myKey 库 SearchKey 表 KeyNum为O的记录 的 KeyNum(关键词匹配数据总量)
使 KeyNum=SELECT COUNT(b.CI_ID) FROM myTab.dbo.CI_SinKey as b
where CONTAINS(b.SearchKey,a.KeyName))上面语句提示CONTAINS(b.SearchKey,a.KeyName))中a.KeyName部分出错在线等····急急急~
USE AdventureWorks;
GO
SELECT Name
FROM Production.Product
WHERE CONTAINS(Name, ' "Mountain" OR "Road" ')
GO参考。
具体更多等待高手...
UPDATE myKey.dbo.SearchKey
SET KeyNum=bb.cnt
FROM myKey.dbo.SearchKey as a
OUTER APPLY
(
SELECT COUNT(b.CI_ID) as cnt
FROM myTab.dbo.CI_SinKey b
WHERE CONTAINS(b.SearchKey,a.KeyName)
) bb
WHERE KeyNum=0
DROP FUNCTION [fn_test]
GO
CREATE FUNCTION [fn_test]
(@KeyName VARCHAR(8000))
RETURNS INT
AS
BEGIN
RETURN(
SELECT COUNT(b.CI_ID)
FROM myTab.dbo.CI_SinKey as b
where CONTAINS(b.SearchKey,@KeyName)
)
END
GOUPDATE myKey.dbo.SearchKey
SET KeyNum=dbo.[fn_test](KeyName)
WHERE KeyNum=0try