12
返回列表 发新帖
楼主: yueliangdao0608

这个SELECT的问题大家一起讨论一下

[复制链接]
论坛徽章:
52
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:32:552012新春纪念徽章
日期:2012-02-07 09:59:35
11#
发表于 2008-1-3 10:20 | 只看该作者
要使用PROCEDURE的话,最笨最简单容易实现的办法就是使用Cursor
判断是否存在id2与id3同时存在为0 的情况,若发生了就中断处理.......

我是这么想的,若只想使用一个语句搞定..就要再想想了.....若何迫使Select语句在碰到 id2与id3同时存在为0 情况下,终止查询语句的执行,返回已经查询出来的结果........在我的脑海中好象没办法做到.....其他人也进来说说想法啊...

使用道具 举报

回复
论坛徽章:
52
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:32:552012新春纪念徽章
日期:2012-02-07 09:59:35
12#
发表于 2008-1-3 10:24 | 只看该作者
我想了个可能的办法, 就使用 limit m,n 语句可能可以.....把你的表生成SQL语句给我哦下..我去测试下....



对了,我怎么没有徽章:现任管理团队

使用道具 举报

回复
论坛徽章:
40
生肖徽章2007版:马
日期:2008-04-07 19:43:48管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14
13#
 楼主| 发表于 2008-1-3 10:29 | 只看该作者
原帖由 jinguanding 于 2008-1-3 10:24 发表
我想了个可能的办法, 就使用 limit m,n 语句可能可以.....把你的表生成SQL语句给我哦下..我去测试下....



对了,我怎么没有徽章:现任管理团队



偶也不清楚阿。


这个表不是我的。我那天在家里自己写的CREATE TABLE语句。没有拿到公司来。又懒得写了。
兄弟写了吧。我COPY一下。

使用道具 举报

回复
论坛徽章:
40
生肖徽章2007版:马
日期:2008-04-07 19:43:48管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14
14#
 楼主| 发表于 2008-1-3 10:30 | 只看该作者
原帖由 jinguanding 于 2008-1-3 10:20 发表
要使用PROCEDURE的话,最笨最简单容易实现的办法就是使用Cursor
判断是否存在id2与id3同时存在为0 的情况,若发生了就中断处理.......

我是这么想的,若只想使用一个语句搞定..就要再想想了.....若何迫使Select语句在碰到 id2与id3同时存在为0 情况下,终止查询语句的执行,返回已经查询出来的结果........在我的脑海中好象没办法做到.....其他人也进来说说想法啊...



CURSOR 我好像从来就没有想过阿。我一直都不用这个东西得。

使用道具 举报

回复
论坛徽章:
52
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:32:552012新春纪念徽章
日期:2012-02-07 09:59:35
15#
发表于 2008-1-3 10:59 | 只看该作者
Cursor就是性能差点.....


对了你的id1 是 int auto_increment类型的字段嘛..要是的话,可能就好办点,否则就更难

使用道具 举报

回复
论坛徽章:
40
生肖徽章2007版:马
日期:2008-04-07 19:43:48管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14
16#
 楼主| 发表于 2008-1-3 11:06 | 只看该作者
原帖由 jinguanding 于 2008-1-3 10:59 发表
Cursor就是性能差点.....


对了你的id1 是 int auto_increment类型的字段嘛..要是的话,可能就好办点,否则就更难



因为不是自增的。所以现在我只能建立一个临时表来做。

使用道具 举报

回复
论坛徽章:
52
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:32:552012新春纪念徽章
日期:2012-02-07 09:59:35
17#
发表于 2008-1-3 11:13 | 只看该作者
疯了........那真要好好想下........要不先用存储过程实现.....

CREATE TABLE `eugene` (
  `id1` int(10) unsigned NOT NULL auto_increment,
  `id2` int(10) unsigned NOT NULL default '0',
  `id3` int(10) unsigned NOT NULL default '0',
  `note` varchar(100) NOT NULL,
  PRIMARY KEY  (`id1`)
) ENGINE=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=gb2312;


insert  into `eugene`(`id1`,`id2`,`id3`,`note`) values (1,2,0,'1a');
insert  into `eugene`(`id1`,`id2`,`id3`,`note`) values (2,3,10,'2a');
insert  into `eugene`(`id1`,`id2`,`id3`,`note`) values (3,4,0,'3a');
insert  into `eugene`(`id1`,`id2`,`id3`,`note`) values (4,5,0,'4a');
insert  into `eugene`(`id1`,`id2`,`id3`,`note`) values (10,11,0,'5a');
insert  into `eugene`(`id1`,`id2`,`id3`,`note`) values (11,0,0,'6a');
insert  into `eugene`(`id1`,`id2`,`id3`,`note`) values (8,9,0,'7a');
insert  into `eugene`(`id1`,`id2`,`id3`,`note`) values (9,15,0,'8a');
insert  into `eugene`(`id1`,`id2`,`id3`,`note`) values (15,0,0,'9a');
insert  into `eugene`(`id1`,`id2`,`id3`,`note`) values (20,21,0,'10a');
insert  into `eugene`(`id1`,`id2`,`id3`,`note`) values (21,22,0,'11a');
insert  into `eugene`(`id1`,`id2`,`id3`,`note`) values (22,0,0,'12a');

使用道具 举报

回复
论坛徽章:
115
生肖徽章:狗
日期:2007-01-06 21:14:12马上有车
日期:2014-03-06 16:45:08马上加薪
日期:2014-05-09 12:27:582014年世界杯参赛球队: 英格兰
日期:2014-07-03 13:10:44青年奥林匹克运动会-竞技体操
日期:2014-09-10 15:30:57马上有钱
日期:2014-10-31 13:56:48美羊羊
日期:2015-03-04 14:48:582015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-04-23 19:26:10金牛座
日期:2015-09-17 08:21:44
18#
发表于 2008-1-3 12:27 | 只看该作者
“查询获得id2或id3的值有在id1中出现的记录,当id2和id3值都为0时结束”
====================================
这句话怎么解释?

使用道具 举报

回复
论坛徽章:
52
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:32:552012新春纪念徽章
日期:2012-02-07 09:59:35
19#
发表于 2008-1-4 11:02 | 只看该作者
杨兄,你这问题我昨天晚上回去后想了下.....

觉得这样的查询要求有问题,否则提问题的人没有说清楚...

1.id1是否是自动增加的字段,以及是否可以按id1重新排序
2. 第1点不可以做,若数据量小,可以在表中重新增加一个字段id,自动增加的
3.若数据量大,增加字段就不可以了;只有考虑使用Cursor实现了,那就SQL代码段(SP)实现了....


你再弄清楚下题意了..........除了上面三种方式去实现,小弟再也想不出办法了.........忘有办法的朋友帮你解决

使用道具 举报

回复
论坛徽章:
40
生肖徽章2007版:马
日期:2008-04-07 19:43:48管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:092012新春纪念徽章
日期:2012-02-13 15:08:09马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14
20#
 楼主| 发表于 2008-1-4 20:04 | 只看该作者
原帖由 jinguanding 于 2008-1-4 11:02 发表
杨兄,你这问题我昨天晚上回去后想了下.....

觉得这样的查询要求有问题,否则提问题的人没有说清楚...

1.id1是否是自动增加的字段,以及是否可以按id1重新排序
2. 第1点不可以做,若数据量小,可以在表中重新增加一个字段id,自动增加的
3.若数据量大,增加字段就不可以了;只有考虑使用Cursor实现了,那就SQL代码段(SP)实现了....


你再弄清楚下题意了..........除了上面三种方式去实现,小弟再也想不出办法了.........忘有办法的朋友帮你解决



兄弟真是好人。
我这几天忙的不可开交。帮网站部改了好多存储过程。一提起来就晕。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表