`
weizhai12
  • 浏览: 146069 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

电子商务中遇到组合搜索的问题

 
阅读更多

在电子商务网站中进行搜索时,经常要将各种条件进行组合查询,如选择了年份,价格,颜色,品牌等条件,要求输出满足条件的结果。我试图写一个SQL函数来实现这种动态组合的查询,但是还是没有能完全实现,只是能实现固定的2中组合的查询,希望各位大侠看到下面代码后能够帮忙实现下或者提供下思路:

/*根据字符串中的分隔符,将字符分割成一个列表,通过Table返回 */
create function [dbo].[fn_split](@inputstr nvarchar(4000), @seprator nvarchar(10))
returns @temp table (a nvarchar(200))
as
begin
declare @i int
set @inputstr = rtrim(ltrim(@inputstr))
set @i = charindex(@seprator , @inputstr)
while @i >= 1
begin
insert @temp values(left(@inputstr , @i - 1))
set @inputstr = substring(@inputstr , @i + 1 , len(@inputstr) - @i)
set @i = charindex(@seprator , @inputstr)
end
if @inputstr <> '\'
insert @temp values(@inputstr)
return
end

/*解析输入的字符串中的分隔符来获取搜索条件,
同时根据这些搜索条件在表T_B_ProductAttr中进行查询
目前函数只是实现了查询2个或者3个条件组成字符串的功能
我花了2个小时试图完成能将字符串分解成n个条件的查询,结果
未果,希望各位大侠能帮忙扩展成能将字符串分解成n个条件的查询
*/
CREATE function [dbo].[fn_GetProductIDByAttValue]
(
@attval nvarchar(200),--输入条件字符
@num int--条件属性的个数
)
returns @temp table (a nvarchar(200))
as
begin
--declare @temp table(a nvarchar(200))
--声明临时表来存放输入的条件值
declare @tempAttValue table(rownum int,a nvarchar(200))
--将条件值存放在临时表并加上行号
insert into @tempAttValue
select ROW_NUMBER() Over (ORDER BY a),a
from dbo.fn_split(@attval,',')
--如果条件的个数为2
if @num=2
begin
--声明属性参数并给其赋值
declare @attval1 nvarchar(30)
declare @attval2 nvarchar(30)
select @attval1=a from @tempAttValue
where rownum=1
select @attval2=a from @tempAttValue
where rownum=2
--获取查询到的结果并返回
insert into @temp
select ProductID from T_B_ProductAttr
where
attrValue=@attval1 and ProductID in (
select ProductID from T_B_ProductAttr
where
attrValue=@attval2)
end
else if @num=3
begin
--声明属性参数并给其赋值
declare @attval4 nvarchar(30)
declare @attval5 nvarchar(30)
declare @attval6 nvarchar(30)
select @attval4=a from @tempAttValue
where rownum=1
select @attval5=a from @tempAttValue
where rownum=2
select @attval6=a from @tempAttValue
where rownum=3
--获取查询到的结果并返回
insert into @temp
select ProductID from T_B_ProductAttr
where
attrValue=@attval4 and ProductID in (
select ProductID from T_B_ProductAttr
where
attrValue=@attval5 and ProductID in (
select ProductID from T_B_ProductAttr
where
attrValue=@attval6
))
end
return
end

分享到:
评论

相关推荐

    B2Bbuilder_v6.5.2.zip 电子商务行业网站内容管理系统!

    B2Bbuilder是一款基于PHP+MySQL的开源B2B电子商务行业门户网站解决方案,利用B2Bbuilder可以快速布署建立一个功能强大的 B2B电子商务行业网站,或地方门户网站。B2Bbuilder也是目前国内用户最多,功能齐全,性能好,...

    vfp6.0系统免费下载

    问题 2-7: 我的 Visual FoxPro 5.0 表单中包含有 ListView 或 TreeView 控件,它们不继承其新版本中的最新功能(如支持复选框)。已发布的应用程序中,由于带有这些表单,而在最终用户的机器上出现表单 OLE 错误,...

    100-Days-Of-Code:我为期100天的编码挑战所取得的进步和项目

    作为2020年计算机科学专业的毕业生,我接受这一挑战的原因是巩固在我的学位课程中学到的概念,建立一致性,探索新技术以及在开展小型电子商务业务时自动化我遇到的任务()。 我将在推特上发布我的进度 开始日期 ...

    B2Bbuilder行业企业网站中英文最新版

    B2Bbuilder是一款基于LAMP架构的B2B电子商务软件系统[软件著作权登记号:2009SR041150],利用B2Bbuilder可以快速布署建立一个功能强大的B2B电子商务行业网站,或地方门户网站。B2Bbuilder也是目前国内用户最多,功能...

    随意发企业信息助手 v2.60.zip

    这正是我们的专业,专业针对B2B电子商务平台、BBS论坛、博客等。只要您能用手工发布填写信息的网站,又没时间每天去注册、发布、刷新信息,那么还是选择我们吧!随意发-企业信息助手都能让您实现。 软件模拟人工...

    Mallbuilder多用户商城

    MallBuilder为拓展企业销售渠道,突显电子商务商业价值,致力于推动电子商务技术的发展而不断努力。365天精心研发,真情回馈客户! MallBuilder功能(包括中英文及多语言) 垃圾信息过滤 内置远丰网盾,智能垃圾信息...

    b2b软件 b2b网站管理系统 b2bbuilder

    B2Bbuilder是一款基于PHP+MySQL的开源B2B电子商务行业门户网站解决方案,利用B2Bbuilder可以快速布署建立一个功能强大的 B2B电子商务行业网站,或地方门户网站。B2Bbuilder也是目前国内用户最多,功能齐全,性能好,...

    MallBuilder 多用户商城管理系统 v1.0 简体中文版

    MallBuilder为拓展企业销售渠道,突显电子商务商业价值,致力于推动电子商务技术的 发展而不断努力。365天精心研发,真情回馈客户! MallBuilder功能(包括中英文及多语言) 垃圾信息过滤 内置远丰网盾,智能垃圾...

    B2Bbuilder行业网站英文系统最新版

    B2Bbuilder是一款基于LAMP架构的B2B电子商务软件系统[软件著作权登记号:2009SR041150],利用B2Bbuilder可以快速布署建立一个功能强大的B2B电子商务行业网站,或地方门户网站。B2Bbuilder也是目前国内用户最多,功能...

    java 面试题 总结

    异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的...

    超级有影响力霸气的Java面试题大全文档

     异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获...

    Elegant Themes Review-crx插件

    从博客和企业主页到电子商务商店以及介于两者之间的所有内容,Divi无疑是一种多功能的网站构建工具。 2. Extra WordPress主题是在Divi之后推出的,其中包括许多最佳功能。 Divi是一个多用途主题,而Extra是为博客,...

    B2Bbuilder B2B网站管理系统最新官方版

    B2Bbuilder B2B网站管理系统最新官方版,B2Bbuilder是一款基于LAMP架构的B2B电子商务软件系统[软件著作权登记号:2009SR041150],利用B2Bbuilder可以快速布署建立一个功能强大的B2B电子商务行业网站,或地方门户网站...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。 PHP的语法与C,Perl,ASP或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP了解较多,那么你对于其他几种语言...

Global site tag (gtag.js) - Google Analytics