我正在构建一个暗示性的标记系统(听起来很划痕),我将一个字符串传递给数据库,如果有匹配,它会发回该标记。我想停止重复的标签,所以如果一个标签是WEB,我只希望它被返回一次。因此,如果我将WEB作为标签,然后添加WEEKLY,则键入“WE”不会再提示WEB作为建议。SQL Server 2008 NOT IN()似乎失败
但是,似乎没有工作。我发送当前标签并使用NOT IN()删除任何重复项。下面是SP代码:
SELECT TOP 1 t.vTagName As vTagName
FROM Tags t
WHERE t.vTagName LIKE @vTagName+'%'
AND t.nTagPortalId = @nPortalId
AND t.vTagName NOT IN(@vCurrentTags)
ORDER BY vTagName ASC
而这正是获得通过真实:
EXEC GetTagSuggest 'We','Web,Print,Design,Advertising,Revenue'
这个查询的响应是vTagName =网页。显然,这不是一个正确的结果,因为它应该是vTagName LIKE“我们”不在“网络等...”。
在此先感谢!
这就是我在回答“分割字符串”时所说的。 – 2009-10-21 08:46:28
要将当前标记作为拆分字符串传递给我(在传统asp中):EXEC GetTagSuggest'Web','''Web'','Create'''。当选中时,返回:'Web','创建'。但是当像这样传入时:t.vTagName NOT IN(@vCurrentTags),它仍然不起作用。在SQL中如何分割字符串? – jamesmhaley 2009-10-21 09:11:55
@randolph:据我所知,但我需要更多的信息,一行:) – jamesmhaley 2009-10-21 09:13:33