如何进行关键字查询

glass_qy_te 2007-07-06 03:50:13
有一张新闻表news,其中有一 titles字段(字段类型为nvarchar)

另一张表 user_set 表 ,其中有一字段 keyword(字段 为nvarchar类型,存放的是关键字)



我想做一个查询就是,去news表里查询 如果titles字段数据包含 keyword字段的值的话就显示出来,假设要按keyword的关键字进行查询,
(假设 rs("keyword")="国家")
思路是:
select * from news where titles字段包含keyword关键字,有的话就查询出来


但是 我不会写这个sql语句 高手帮帮我啊!!
...全文
219 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
glass_qy_te 2007-07-06
  • 打赏
  • 举报
回复
其实你们的也是对的 只不过你们没有好好看看题目呵呵 你们的是正link搜索 我需要的是反过来的搜索 你们的就不行了



谢谢大家呵呵
glass_qy_te 2007-07-06
  • 打赏
  • 举报
回复
paoluo(一天到晚游泳的鱼) ( ) 信誉:100 Blog 加为好友




这位朋友的答案是正确的~
ctto 2007-07-06
  • 打赏
  • 举报
回复
先把关键字存到一个数组里,假如关键字是用","分离的
那么string [] keys=rs["keywords"].split(',');
再跟据这个数组构造出sql语名,如
string sql="select * from news where ";
for (int i=0;i<keys.length;i++)
{
if(i!=0)
{
sql+=" or ";
}
sql+="titles like '%"+keys[i]+"%";
}

上面组合出来的sql就可以跟据录入的多个关键字查出包括一个或多个关键字的标题
wdzr_826 2007-07-06
  • 打赏
  • 举报
回复
应该用like做
关键字可能是几个关键自合并成的一个新的字符串。不能用in
select * from news A Inner Join user_set B On A.titles Like '%' + B.keyword + '%'
楼上这个就行
paoluo 2007-07-06
  • 打赏
  • 举报
回复
ERPCoder(Most Valuable Player) ( ) 信誉:100 Blog 加为好友 2007-07-06 16:05:51 得分: 0


select * from news where titles like '%' + keyword + '%'



------------------
keyword 字段不在news 表中
ERPCoder 2007-07-06
  • 打赏
  • 举报
回复
select * from news where titles like '%' + keyword + '%'
paoluo 2007-07-06
  • 打赏
  • 举报
回复
也可以用CharIndex
select * from news A Inner Join user_set B On CharIndex(B.keyword, A.titles) > 0

或者

select * from news A, user_set B Where CharIndex(B.keyword, A.titles) > 0
paoluo 2007-07-06
  • 打赏
  • 举报
回复
或者

select * from news A, user_set B Where A.titles Like '%' + B.keyword + '%'
paoluo 2007-07-06
  • 打赏
  • 举报
回复
怎麼都用in?這個查詢應該不會是用in去做的, 而應該是用Like去做。

select * from news A Inner Join user_set B On A.titles Like '%' + B.keyword + '%'
luosong314 2007-07-06
  • 打赏
  • 举报
回复
顶 上面的兄弟们。
xray2005 2007-07-06
  • 打赏
  • 举报
回复
兄弟们都说了,我就不重复了,我接分!
copico 2007-07-06
  • 打赏
  • 举报
回复
select * from news where titles in (select keyword from user_set)
fengyeng 2007-07-06
  • 打赏
  • 举报
回复
select * from news where titles in (select keyword from news)
copico 2007-07-06
  • 打赏
  • 举报
回复
select * from news where titles in (select keyword from news)

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧