求 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 个以上就会报语法错误, 还有一个是效率的问题,查询的特别慢,
各位高手帮帮忙
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,多了要做拆分。
这么多分类可以考虑改下数据库设计。
或者使用缓存或是临时表等方法
in不能超过1000,多了要做拆分。
这么多分类可以考虑改下数据库设计。
或者使用缓存或是临时表等方法
作者: asmoke 发布时间: 2011-03-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28