一个很棘手的问题:
先简单说下数据库里的结构doc_drawing 表,里面需要用的字段是:工程名称,项目名称,图纸类型
表示方法如:
第1条记录:工程名称1 项目名称1 A1
第2条记录:工程名称1 项目名称1 A2
第3条记录:工程名称1 项目名称2 A3
第4条记录:工程名称1 项目名称1 A4
第5条记录:工程名称2 项目名称4 A2
第6条记录:工程名称2 项目名称5 A3我现在要做的,是在doc_drawing 表中取出数据,并按工程名称分页,10个为一页;
我的做法是:
1,先取出所有工程名称:select distinct d.projectname from doc_drawing
再根据得到的结果分页。如,得到第50-60个工程的名称。得到10个工程名称后, 再自动生成如下SQL语句
2,select d.paperType,d.itemName,d.projectname from doc_drawing d
inner join doctree t on d.commonid=t.mainid
and
(d.projectName='中医药大学'
or d.projectName='时代广场时代花园'
or d.projectName='爱丽山庄一期修改'
or d.projectName='爱丽山庄一期改图'
or d.projectName='集团软件生产基地'
or d.projectName='巷地块二期'
or d.projectName='行政服务中心'
or d.projectName='园区一期工程'
or d.projectName='防控制中心迁建工程'
or d.projectName='技工学院')
order by projectname,itemName以上sql语句中,()中间的是自动生成的,这样的语句运行起来很慢。请问有什么办法优化吗?或者换个别的方法实现。
注意:一定要按照工程名称分页。难就难在如果不按这样的方法的话,不好区别数据中工程与工程之间数据分不多了。谢谢各位啦,不够的话以后有分了再补上
先简单说下数据库里的结构doc_drawing 表,里面需要用的字段是:工程名称,项目名称,图纸类型
表示方法如:
第1条记录:工程名称1 项目名称1 A1
第2条记录:工程名称1 项目名称1 A2
第3条记录:工程名称1 项目名称2 A3
第4条记录:工程名称1 项目名称1 A4
第5条记录:工程名称2 项目名称4 A2
第6条记录:工程名称2 项目名称5 A3我现在要做的,是在doc_drawing 表中取出数据,并按工程名称分页,10个为一页;
我的做法是:
1,先取出所有工程名称:select distinct d.projectname from doc_drawing
再根据得到的结果分页。如,得到第50-60个工程的名称。得到10个工程名称后, 再自动生成如下SQL语句
2,select d.paperType,d.itemName,d.projectname from doc_drawing d
inner join doctree t on d.commonid=t.mainid
and
(d.projectName='中医药大学'
or d.projectName='时代广场时代花园'
or d.projectName='爱丽山庄一期修改'
or d.projectName='爱丽山庄一期改图'
or d.projectName='集团软件生产基地'
or d.projectName='巷地块二期'
or d.projectName='行政服务中心'
or d.projectName='园区一期工程'
or d.projectName='防控制中心迁建工程'
or d.projectName='技工学院')
order by projectname,itemName以上sql语句中,()中间的是自动生成的,这样的语句运行起来很慢。请问有什么办法优化吗?或者换个别的方法实现。
注意:一定要按照工程名称分页。难就难在如果不按这样的方法的话,不好区别数据中工程与工程之间数据分不多了。谢谢各位啦,不够的话以后有分了再补上
解决方案 »
- load data 从文本到数据库,文本中有多余列该如何处理,谢谢。
- 表名作为参数,写一个接口,把数据写到OS文件上
- 请问兄弟们这个数据库该怎么建立
- Oracle中select出的数据的顺序是依据什么排列的?(只有20分了不好意思)
- How to generate random numbers and strings in Oracle
- [que]如何批修改字符串字段值
- 怎样批量执行一串create table xxx as select ...?
- 有没有人用SQL Navigator 4的能不能提供一个注册吗?谢谢了!!
- 请大家来讨论:关于ORACLE iDS,iAS. 知道多少说多少。
- win10安装oracle数据库出现问题,百度的方案都不行啊,求救!!
- rman 备份数据文件
- ——————超级头痛的聚合函数问题,前辈们赐教了,谢谢
最好这样,先从数据库取出全部需要的信息(select d.paperType,d.itemName,d.projectname from doc_drawing d
inner join doctree t on d.commonid=t.mainid order by d.projectname )到前台数据缓冲区,然后定义一个计数器,依次将缓冲区的数据转移到显示区,每出现一个不同的projectname计数器加1,每当计数器达到10就输出一个分页且清零计数器,直至所有数据都输出到显示区
写好SQL再加入AJAX来实现吧
不要一下子全部挑出所有的资料,速度太慢
inner join doctree t on d.commonid=t.mainid
and d.projectName
in (select distinct d.projectname from doc_drawing)
order by projectname,itemName