比較簡單的拆詞查詢

2021-06-16 00:51:40 字數 2109 閱讀 7510

if not object_id('keywordtable') is null drop table keywordtable

create table dbo.keywordtable

(id int identity (1,1) not null,primary key(id),num int not null default 0,

keyword nvarchar(50) not null default '片語')

--首先建立乙個虛擬表,用來儲存待匹配的關鍵字,這個虛擬表可以加快一定的速度

declare @tb table

(id int,keyword varchar(50)

)--檢測詞庫中匹配的片語,並將其插入虛擬表

insert @tb

select [id],keyword from [keywordtable] where charindex(keyword,@keywords)>0

set @leftkey = left(@keywords,@charat-1)

if @leftkey<>'' and len(@leftkey)>1

begin

insert @keytable

select @leftkey

end--剔除關鍵字

set @keywords=stuff(@keywords,@charat,len(@thiskey),'')

--這裡把剔除關鍵字後的剩餘字串插入虛擬表

if @keywords<>'' and len(@keywords)>1 and (select count(keyword) from @keytable where keyword=@keywords)<1

begin

insert @keytable

select @keywords

end--資料插入虛擬表的操作結束了

end--

fetch cursor_insert into @i --取下一記錄的id值賦給@i

endclose cursor_insert

deallocate cursor_insert

--查詢

select * from @keytable order by len(keyword) desc -- 列出拆詞後的結果

--用拆解出來的關鍵字去查詢資料庫

--以下資料用來測試

if not object_id('msgtable') is null drop table msgtable

create table dbo.msgtable

(id int identity (1,1) not null,primary key(id),title nvarchar(50) not null default '測試',

content ntext)

insert into msgtable(title,content)

values('北京/上海/杭州','北京,上海,杭州都能查詢到的資料')

insert into msgtable(title,content)

values('北京/杭州','北京,杭州都能查詢到的資料')

insert into msgtable(title,content)

values('杭州','只有杭州能查詢到的資料')

--select * from msgtable t where exists(select keyword from @keytable where charindex(keyword,t.title)>0)

select msg.*,k.keyword from msgtable as msg,@keytable as k where msg.title like '%' + k.keyword + '%'

/*以前沒寫過拆詞程式,今天一時興起,隨手敲的**,拆詞效果不是很理想。

本人對t-sql很不了解,所以寫的有些零亂,沒有整理成函式,也沒測試在大資料量的時候的執行速度

恩,最主要的,全文索引也沒建立,估計大資料量的時候會很慢...

以下**會在資料庫中建兩個表(keywordtable,msgtable )

所以建議新建乙個空資料庫,然後再到查詢分析器裡執行以上**...*/ 

hdu 考試排名 比較簡單

問題描述 c 程式設計考試使用的實時提交系統,具有即時獲得成績排名的特點。它的功能是怎麼實現的呢?我們做好了題目的解答,提交之後,要麼 ac 要麼錯誤,不管怎樣錯法,總是給你記上一筆,表明你曾經有過一次錯誤提交,因而當你一旦提交該題 ac 後,就要與你算一算帳了,總共該題錯誤提交了幾回。雖然你在題數...

比較簡單的單間租房協議

出租方 甲方 承租方 乙方 甲 乙雙方就房屋租賃事宜,達成如下協議 一 甲方將位於 的單間房屋出租給乙方居住使用,租賃期限自2016年 7月23日至2016年 10月23日,計3個月。二 本房屋月租金為人民幣 800元,按季度結算。乙方一次性向甲方支付全季租金,同時支付乙個月押金。三 乙方租賃期間,...

一些比較簡單的演算法

今天被提起,發現很多細節,都是演算法啊,我居然以前都沒注意到,唉,笨人,多做點筆記為好 對於交換兩個數 既然是演算法,自認不能用乙個變數來當中介,這樣空間複雜度就相對高。通過算術運算交換 param a param b public void exchangetwonumbyarithmetic i...