+ -
当前位置:首页 → 问答吧 → 求 sql 语句

求 sql 语句

时间:2011-03-23

来源:互联网

产品表 :

            ID   Name  NodeID

            1     名称      1

            .........................

           ...........................



分类表  

         NodeID,  ClassName, parentID,   arrChildID(所有子节点的ID数组)

         1           分类名称            0                  1

         2           分类名称            1                   2,3,4,5

         3           分类名称            2                    3,4,5

         4           分类名称            3                    4,5

         5           分类名称            4                    5



1、分类表中 如果 2 低下有上万个分类, 它们的ID都会被记录在 2 行的 arrChildID 里面



2、  在添加产品的时候,我会让它先选所属那个分类



3、 添加完成后,在查询的时候 我是这么写的

      比如要查询 分类2 下面的产品

       string  strArr = 第二行的 arrChildID 字段的值 ( 2,3,4,5)

      select * from 产品表 NodeID in (strArr)



可是如果当 第二行的 arrChildID 字段的值  超过上万个情况就不是很好了



   一个是 in 超过 1000 个以上就会报语法错误, 还有一个是效率的问题,查询的特别慢,



各位高手帮帮忙

作者: xiaweihi   发布时间: 2011-03-23

sql语句上好像没办法优化,可以考虑使用存储过程,应该会快一些。
in不能超过1000,多了要做拆分。
这么多分类可以考虑改下数据库设计。
或者使用缓存或是临时表等方法

作者: asmoke   发布时间: 2011-03-23

相关阅读 更多

热门下载

更多