一个文章关键字表,有两列,一列是文章ID,一列是关键字
多关键字查询的情况下,想通过多关键字找文章,这要怎么写
select ArticleID from table where keyword like '%aaa%' and like '%bbb%'
这样是找不出记录的
多关键字查询的情况下,想通过多关键字找文章,这要怎么写
select ArticleID from table where keyword like '%aaa%' and like '%bbb%'
这样是找不出记录的
我想这样总应该出来了吧
select ArticleID from table where keyword like '%aaa%bbb%'
where charindex('aaa',keyword ) > 0
and charindex('bbb',keyword ) > 0
(
a varchar(20)
)
insert into @test
select 'aaa bbb ccc ddd' union all
select 'aaa ccc ddd' union all
select 'bbb ccc ddd aaa ' union all
select 'bbb ccc ddd'select * from @test
where a like '%aaa%' and a like '%bbb%'/*
a
--------------------
aaa bbb ccc ddd
bbb ccc ddd aaa
*/
我這樣可以
select ArticleID from table where (keyword like '%aaa%') and (keyword like '%bbb%')
1 A
2 B
1 C
3 A
就这样,如何把KEYWORD同时等于A和C的文章找出来
(
articleID int,
keyword varchar(20)
)insert into t
select 1, 'A' union
select 2, 'B' union
select 1, 'C' union
select 3, 'A'create function f_unit (@id int)
returns varchar(8000)
as
begin
declare @s varchar(8000)
set @s = ''
select @s = @s + keyword
from t
where articleID =@id return @S
endselect articleID , dbo.f_unit(articleID) as keyword into #
from t
group by articleIDselect *
from t
where articleID in
(
select articleID
from #
where charindex('A',keyword) > 0
and charindex('C',keyword) > 0
)
Drop table T
drop table #