请教sql问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 10:56:05
splitkeyword=split(keyword,"|")
keywordsql=""
for keycount=0 to ubound(splitkeyword)
if keycount=0 then

keywordsql="where news_keyword like '%"&splitkeyword(keycount)&"%' or news_title like '%"&splitkeyword(keycount)&"%'"
else
keywordsql=keywordsql&" or news_keyword like '%"&splitkeyword(keycount)&"%' or news_title like '%"&splitkeyword(keycount)&"%'"
end if

关键字是这样排列的。比如这一条:中国民俗|网络时代|汽车|房产
我要求搜索出来的完全匹配关键字。
可是现在不是,比如,我搜索中国,搜索结果中包含了中国民俗这一条。我不要这样。

我把like改为=
结果是什么都没有。
去掉% 也是没有任何。
请问怎么修改?才能完全匹配关键字。谢谢。
我简化到了这样:还是没有索索结果
splitkeyword=split(keyword,"|")
keywordsql=""
for keycount=0 to ubound(splitkeyword)
if keycount=0 then
keywordsql="where news_keyword = '"&splitkeyword(keycount)&"'"
else
keywordsql=keywordsq

你先不要在你程序里运行,在你的sql里执行
然后在查询分析器里调试
首先不知道你参数里传的是什么数据
第二,你所写的“中国民俗|网络时代|汽车|房产”是一个字段里的数据
还是有父名称关联出的下边的子名称?
这种东西你写不好没人能帮上你,不行的话HI吧

把like改为= 并且去掉%

你的数据库设计有问题 就不应该把一堆关键字放一个字段里 即使查出来 这个效率也是极低的 除非你的记录很少 如果是这样的话 你可以用select * 查出所有记录 然后在应用里去判断

如果一定在数据库端完成 用存储过程来做 大概的思路是 你先按“|”拆分 然后再匹配你的查询条件 如果需要完全匹配就用= 模糊就用like关键字