仍是Sql查询问题

h821291419 2010-01-08 05:05:45
有两个表
一个表存的是文章信息
内容 text
..
..
另一个表存的是关键字
keyWord varchar(50)

现要求查询所文章表中包含关键字的所有记录

尽量高效
...全文
133 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
h821291419 2010-01-09
  • 打赏
  • 举报
回复
呵呵 都能解决问题!
谢谢各位大虾!
结贴
bancxc 2010-01-08
  • 打赏
  • 举报
回复
5喽是个知识库 收藏真多
SQL77 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 htl258 的回复:]
SQL codeselect*from 文章表 awhereexists(select1from 关键字表wherecharindex([keyword],a.内容)>0)
[/Quote]
这样的话用连接可能效率还好点TONY哥是不是?

select * from 文章表 a , 关键字表 B where charindex(B.[keyword],a.内容)>0
htl258_Tony 2010-01-08
  • 打赏
  • 举报
回复
应该用:

select * from 文章表 a where exists(select 1 from 关键字表 where patindex('%'+[keyword]+'%',a.内容)>0)
htl258_Tony 2010-01-08
  • 打赏
  • 举报
回复
select * from 文章表 a where exists(select 1 from 关键字表 where charindex([keyword],a.内容)>0)
dawugui 2010-01-08
  • 打赏
  • 举报
回复
select m.* , n.*
from 一个表存的是文章信息 m , 另一个表存的是关键字 n
where m.内容 like '%' + n.keyWord + '%'

select m.* , n.*
from 一个表存的是文章信息 m , 另一个表存的是关键字 n
where charindex(n.keyWord , m.内容) > 0

--如果内容是text类型,需要转化为varchar
select m.* , n.*
from 一个表存的是文章信息 m , 另一个表存的是关键字 n
where cast(m.内容 as varchar) like '%' + n.keyWord + '%'

select m.* , n.*
from 一个表存的是文章信息 m , 另一个表存的是关键字 n
where charindex(n.keyWord , cast(m.内容 as varchar)) > 0
nianran520 2010-01-08
  • 打赏
  • 举报
回复
select r.*
from 文章信息 r join 关键字 t
on charindex(t.keyWord,r.内容)>0

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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