分类(数据库相关)

          在上篇日志中,我们已经将商品的扩展属性存储在一个XML类型的字段中,详情请查阅:利用SQL SERVER2005的XML字段类型实现类似“商品扩展属性”的功能(1)

         本篇日志将介绍如何对此字段进行查询,也就是说要实现网站用户通过选择一个类别的扩展属性来对于此类别下的商品进行方便的查询。 SQL SERVER2005新加入XML字段类型,同时也新加入了支持方便查询或是更改此类型的函数,具体函数的详细介绍可以参见此文:SQL Server2005的XML数据类型之基础篇

        例如我们要查询手机中“是否为智能机”属性为“是”的手机,sql如下写法: select b.* from productExpand a left join product b on a.fproductId=b.fprductId where a.fexpand.exist('/exp/item[@value=1]')=1 即可,因为这里在表 属性选择值定义表(表名:expandItem) 中“是否为智能机”属性的选择项“是”的标识ID为“1”,所以我们查 value=1,由于每个选择项的标识ID都不一样,所以我们这里可以不管“name"属性,直接查value即可。

         例如我们要查询手机中“是否为智能机”属性为“是” 并且 “手机制式”属性为“GSM”的手机,sql写法为:select b.* from productExpand a left join product b on a.fproductId=b.fprductId where a.fexpand.exist('/exp/item[@value=1]')=1 and a.fexpand.exist('/exp/item[@value=3]')=1 (属性“手机制式”中选项“GSM”的标识ID为“3”)

          通过这样子的SQL写法就可以实现网站前台通过扩展属性对网站商品的详细查询功能,个人测试的结果感觉效率还是可以让人满意的,当然,我并没有进行过海量数据的测试,有兴趣的朋友可以测试一下儿查询效率。

         关于SQL SERVER2005中XML字段类型的认识我也比较浅薄,这次的应用也算是现学现卖,如果各位朋友有好的建议或是本中有不对地方欢迎大家提出。

相关日志:
正在读取相关日志,请等待...
分类(数据库相关) | 访问(0) | +引用(0) |
(游客)hao 2008/02/24 16:20:11
看不懂〉。。。 
发表评论
昵称  密码  游客无需密码
网址  电邮  注册
验证码 请输入左侧图片中的字符
记住我
 
天气好热呀~~~
程序有点儿小问题,在静态日志面发表评论会报错,上次更新有点儿东西忘改了,目前新版做了一半,一时没有办法直接更新了。。。见谅
模板选择
小调查
你看好本站的发展吗?
非常有前途
还是不错的
一般般了
没前途
站长信息
昵称:zj
[给我发短消息]
QQ:245376247
Email:zj-blog@163.com
MSN:zj-blog@hotmail.com
日历
统计
最新评论
最新留言
热门文章