首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

单词匹配有关问题,a表为关键词,b表为全称词,怎么匹配关键词为纯英文单词

2012-02-01 
单词匹配问题,a表为关键词,b表为全称词,如何匹配关键词为纯英文单词?单词匹配问题,a表为关键词,b表为全称

单词匹配问题,a表为关键词,b表为全称词,如何匹配关键词为纯英文单词?
单词匹配问题,a表为关键词,b表为全称词,如何匹配关键词为纯英文单词?
如a表中有time sheet b表中有time sheet is a table、time sheet 123、
需要根据time sheet 把time sheet is a table、time sheet 123、都找出来。用模糊查询的话,可能会出现很多冗余数据。用精确匹配的话,有查询不出来。请各位给个解决方案吧。谢谢!

[解决办法]

SQL code
select * from b where col like '%time sheet%'
[解决办法]
select * from b where col like '%time%sheet% '
[解决办法]
SQL code
如a表中有time   sheet   b表中有time   sheet   is   a   table、time   sheet   123、 如果上述内容为一条记录select b.* from b,a where charindex(a.col , b.col) > 0
[解决办法]
SQL code
declare  @b table(col varchar(32))insert @b select 'time sheet is a table'union all select 'time sheet 123'union all select 'time 123 sheet'select * from @b where col like '%time sheet%'/*col--------------------------------time sheet is a tabletime sheet 123(2 row(s) affected)*/
[解决办法]
SQL code
declare  @b table(col varchar(max))insert @b select 'time sheet is a table'union all select 'time sheet 123'union all select 'time 123 sheet'declare @keyword varchar(32)-- select @keyword=keyword from A where ... /*如果关键字从A表中查,用这句*/set @keyword='time sheet'while charindex('  ',@keyword)>=1    set @keyword=replace(@keyword,'  ','')set @keyword=replace(@keyword,' ','%')select * from @b where col like '%'+@keyword+'%'/*col------------------------------------time sheet is a tabletime sheet 123time 123 sheet(3 row(s) affected)*/
[解决办法]
如果a表中time sheet是一行, 并且要求能查出 time 123 sheet
那么14楼的写法就可以了.

如果不是一行
SQL code
DECLARE @a TABLE(id INT IDENTITY(1,1),v VARCHAR(20))INSERT @a SELECT 'time' UNION SELECT 'sheet'DECLARE @b TABLE(id INT IDENTITY(1,1),v VARCHAR(100))INSERT @b SELECT 'time   sheet   is   a   table' UNION SELECT 'time   sheet   123' UNION SELECT 'abc time 123 sheet' UNION SELECT 'time'UNION SELECT 'asbc 123 sheet xxx'SELECT DISTINCT b.* FROM @b bINNER JOIN @a a    ON b.v LIKE '%' + a.v + '%' AND NOT EXISTS(SELECT 1 FROM @a WHERE b.v NOT LIKE '%' + v + '%') 

热点排行
Bad Request.