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

.这样的搜索查询,应该如何做

2012-02-26 
请教高手.这样的搜索查询,应该怎么做?表----------------------商店名称提供产品小A水果店苹果,香蕉,葡萄

请教高手.这样的搜索查询,应该怎么做?

----------------------
商店名称                         提供产品
小A水果店                       "苹果,香蕉,葡萄,雪梨,芒果,西瓜 "...
小B水果店                       "香蕉,葡萄,西瓜 "...
小C水果店                       "榴莲,猕猴桃 "...
----------------------
需求,当客户输入以下条件,搜索时,能找到能提供对应产品的商家.(注:必须严格满足条件)
1. "西瓜,香蕉 "
2. "雪梨,苹果 "
3. "葡萄 "
...
如:小A水果店,虽然提供 "西瓜和香蕉 ",但因为客户的输入顺序和字段里存放的不同,用普通LIKE,解决不了这个问题.

请问,为实现类似查询,应该怎么做?

另外,以上问题是我自己虚构的,我的实际需求有些类似.

请大家帮忙,谢谢!

[解决办法]
try

Declare @提供产品 Nvarchar(100)
Select @提供产品 = N '西瓜,香蕉 '
Select * From 表 Where ', ' + 提供产品 + ', ' Like '% ' + @提供产品 + '% '
[解决办法]
改改表结构
----------------------
商店名称 提供产品
小A水果店 苹果
小A水果店 香蕉
……
[解决办法]
declare @tb table(
name varchar(10),
type varchar(50)
)
insert into @tb select 'a ', '苹果,香瓜,葡萄,桔子,椰子 '
union all select 'b ', '西瓜,苹果,桃子,桔子,葡萄 '
union all select 'c ', '香蕉,苹果,葡萄,桔子,甘蔗,桃子 '
select * from @tb
select name
from @tb
where type like '%苹果% ' and type like '%桃子% '

热点排行
Bad Request.